- Luck Dragon: Asszociációs játék. :)
- Elektromos rásegítésű kerékpárok
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- sziku69: Szólánc.
- Mr Dini: Mindent a StreamSharkról!
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- MasterDeeJay: i7 4980HQ asztali gépben (vs i7 4770)
- GoodSpeed: Te hány éves vagy?
-
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
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Autós topik
- Crimson Desert - Amikor már azt hitted mindent láttál!
- Battlefield 6
- Milyen monitort vegyek?
- Yepp: korlátlanság és streaming-modell a Yettel adatforradalma
- Minden a BlackBerry telefonokról és rendszerről
- Tanuljunk angolul!
- Melyik tápegységet vegyem?
- Hardcore café
- További aktív témák...
- Iphone 17 PRO
- i5 12500/ 32GB DDR4/ RX6700XT 12GB/ 500GB m.2 SSD alapú konfig/ garancia/ ingyen foxpost
- Új 2K Gamer PC Intel i7 14700Kf/RX 9060 XT 16Gb/2x16Gb DDR4 3200Mhz/1Tb NVME SSD/2-3Év gari
- Új 4K Gamer PC Intel i7 14700Kf/RX 9070 XT 16Gb/2x16Gb DDR4 3200Mhz/1Tb NVME SSD/2-3Év gari
- Új 4K Gamer PC Intel i7 14700Kf/RX 5070 12Gb/2x16Gb DDR4 3200Mhz/1Tb NVME SSD/2-3Év gari
- SZÁLCSISZOLT FÉM HATÁSÚ Dell Latitude 5420 14" Touchscreen i5-1135G7 16GB 256GB 1 év garancia
- REFURBISHED és ÚJ - Lenovo ThinkPad 40AY Universal USB-C Dock
- LG 49sm8600pla 49" és ok. odl 58920uh-dab 58" hibás TV-k
- Gyári DELL, HP, LENOVO,Asus,Fujitsu laptop töltők, 27% ÁFA
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest

