- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- MasterDeeJay: i7 4980HQ asztali gépben (vs i7 4770)
- Elektromos rásegítésű kerékpárok
- sziku69: Fűzzük össze a szavakat :)
- GoodSpeed: Te hány éves vagy?
- Luck Dragon: Asszociációs játék. :)
- hcl: Eszelős szívatás : kijelzőtükrözés 2026
- eBay-es kütyük kis pénzért
- sh4d0w: Én és a számítógép
- mefistofeles: Az elhízás nem akaratgyengeség!
-
LOGOUT
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
-
Doink
aktív tag
A egyik megoldás az hogy ígéretet (Promise) adj vissza és belül az onsuccess-nél resolve-old, onerror-nál meg reject-eled.
this.getData = function(){
return new Promise(resolve,reject) => {
let query = db.valami_async_művelet()
query.onsuccess = function(result){
resolve(result)
}
query.onerror = function(err){
reject(err)
}
}
}Így fogod tudni meghívni:
ValamiService.getData().then((result) => {
// beteljesült az ígéret és a result-ban lesz az eredmény
}).catch(error) => {
// hiba
});Másik elegáns megoldás ha cold observable-t használsz (rxjs).
-
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
- World of Tanks - MMO
- Peugeot, Citroën topik
- Digitális Állampolgárság Program DÁP
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Microsoft Excel topic
- Windows 11
- BestBuy topik
- Futás, futópályák
- A készlethiány jelezheti, jön az iPhone 16e és iPad Air utódja
- AliExpress tapasztalatok
- További aktív témák...
- HP Zbook Fury G8, I7-11850H,32 gb, 512 ssd, MAGYAR VILÁGÍTÓ BILLENTYŰZET, hibátlan állapot
- Creative Sound Blaster Z SB1500 PCI-E Hangkártya
- Samsung Galaxy S24 Ultra 5G 512GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Asztali PC , i3 13100F , RTX 2060 Super , 16GB RAM , 512GB NVME
- AKCIÓ! HP EliteBook x360 830 G7 i5-10210U 16GB 512GB 1 év garancia
- Lenovo T14S Thinkpad FHD IPS i5-1135G7 16GB RAM 256GB SSD Intel Iris XE Graphics Win11 Pro Garancia
- Apple Imac 21,5 Inch, Late 2015! Intel Core I5 + Intel Iris Pro Graphics. 1TB Háttértár!
- GYÖNYÖRŰ iPhone 15 Pro Max 256GB Fekete Titán - 12 hónap JÓTÁLLÁS - Kártyafüggetlen, 100% Aksi
- Samsung Galaxy S24 FE 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

