-
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
- Dell Latitude 3120 Win11 /8Gb RAM/ Érintő kijelző/ 2in1 tablet is /128 GB SSD/ Több órás akkumulátor
- Steam Deck 512GB FULL EXTRÁS CSOMAG ÚJSZERŰ, AJÁNDÉKOKKAL!
- Bomba ár! Dell Latitude 5490 - i5-8G I 8GB I 256SSD I 14" HD I HDMI I Cam I W11 I Garancia!
- Bomba ár! Lenovo X1 Yoga 1st - i5-6G I 8GB I 512SSD I 14" FHD PXCsík I HDMI I W11 I Cam I Gari
- Bomba ár! Lenovo ThinkPad T490 - i5-8G I 8GB I 256SSD I 14" FHD I HUN I Cam I W11 I Garancia!
- ÚJ akksi! GigaAKCIÓ! Lenovo ThinkPad P15 Gen 2 Intel i7-11850H 32GB 512GB Nvidia RTX A3000 1 év gar
- GYÁRI TÖLTŐK Macbook Magsafe 1 és 2 Budapest,/MPL/Foxpost
- Eladó új állapotban levő Redmi Note 10S 6/128GB szürke / 12 hónap jótállás
- MSI Thin GF63 12VF RTX 4060 / 144Hz / SZINTE ÚJ!
- HP EliteBook 830 G8 13,3" i7 -1185 G7, 8-16GB RAM, SSD, jó akku, számla, 6 hó gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

