Hirdetés
-
PROHARDVER!
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Karma
félisten
Az aszinkron működést nem tudod megkerülni, úgyhogy olyan getData függvényt, amit egyszerűen szinkron módon meghívsz és eredményeket ad vissza, lehetetlen írni. (Nem is feltétlen baj.)
Van egy pár lehetőséged, az egyik legegyszerűbb, ha adsz egy callback paramétert a getData függvényednek. Ez például egy olyan kétparaméteres függvény, aminek az első paramétere a futáskor történt hiba (lehet `null` is ha minden szép), a második pedig a tényleges adat.
A lényeg, hogy az indexedDB-s kódod az utolsó onsuccess handler végén meghívja ezt a függvényt, így tudod feldolgozni az eredményt.
Például:
this.getData = function(callback){
var open = indexedDB.open(database, 1);
open.onsuccess = function() {
// Start a new transaction
var db = open.result;
var tx = db.transaction(table, "readonly");
var request = tx.objectStore(table).getAll();
request.onsuccess = function() {
callback(null, request.result);
};
request.onerror = function() {
callback(request.errorCode);
};
// Close the db when the transaction is done
tx.oncomplete = function() {
db.close();
};
};
open.onerror = function() {
callback(open.errorCode);
}
};Máshol meg így hívod:
valami.getData(function(err, data) {
if (err) {
console.log("Error while reading data", err);
return;
}
console.log("Found data", data);
});Ha meg tisztább kódot akarsz, keress egy promise wrappert az IndexedDB-hez szerintem. Persze azt is meg kell tanulni használni először.
Amúgy sose használtam az IndexedDB-t, de a megérzésem azt mondja, hogy nem kéne minden lekérdezésnél nyitni-zárni.
Új hozzászólás Aktív témák
- Civilization V
- hege8888: Retro Kocka Kuckó harmadjára Hódmezővásárhelyen
- Ingatlanos topic!
- Az 5 legnagyobb bénázás a mobilpiacon idén
- PlayStation 5
- Diablo IV
- Kormányok / autós szimulátorok topikja
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- Garancia kérdés, fogyasztóvédelem
- VGA kibeszélő offtopik
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone SE 2020 64GB Black-1 ÉV GARANCIA - Kártyafüggetlen, MS4001
- BESZÁMÍTÁS! SAPPHIRE B650M R7 8700F 32GB DDR5 512GB SSD RX 6800 16GB Zalman S2 TG GIGABYTE 750W
- Eladó szép állapotban levő Apple iPhone 11 64GB fehér / 12 hónap jótállással!
- LG UltraGear Gaming Monitorok -30%
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


