indexed_db getObject () - jak zwrócić wynik
Chciałbym wiedzieć, jak zdefiniować typ danych i jak zwrócić obiekt (rekord) za pomocą getObject (). Obecnie jedyny sposób na wykorzystanie wyniku (rekordu) poza funkcją, która go uzyskuje, to wywołanie innej funkcji z wynikiem. W ten sposób typ danych nie musi być określony. Jeśli jednak chcę zwrócić wartość, muszę zdefiniować typ danych i nie mogę znaleźć, co to jest. Próbowałem „dynamicznie”, ale to nie wydawało się działać. Na przykład ":
fDbSelectOneClient(String sKey, Function fSuccess, String sErmes) {
try {
idb.Transaction oDbTxn = ogDb1.transaction(sgTblClient, 'readwrite');
idb.ObjectStore oDbTable = oDbTxn.objectStore(sgTblClient);
idb.Request oDbReqGet = oDbTable.getObject(sKey);
oDbReqGet.onSuccess.listen((val){
if (oDbReqGet.result == null) {
window.alert("Record $sKey was not found - $sErmes");
} else {
///////return oDbReqGet.result; /// THIS IS WHAT i WANT TO DO
fSuccess(oDbReqGet.result); /// THIS IS WHAT i'm HAVING TO DO
}});
oDbReqGet.onError.first.then((e){window.alert(
"Error reading single Client. Key = $sKey. Error = ${e}");});
} catch (oError) {
window.alert("Error attempting to read record for Client $sKey.
Error = ${oError}");
}
}
fAfterAddOrUpdateClient(oDbRec) {
/// this is one of the functions used as "fSuccess above