jQuery indexedDB-如果找到记录,则返回true
我想编写一个函数,使用jQuery插件检查IndexedDB中是否存在定义的值 我尝试使用它,但它不起作用,因为找到的返回是在promise.done()完成之前执行的。我怎样才能解决这个问题 非常感谢jQuery indexedDB-如果找到记录,则返回true,jquery,return,promise,indexeddb,Jquery,Return,Promise,Indexeddb,我想编写一个函数,使用jQuery插件检查IndexedDB中是否存在定义的值 我尝试使用它,但它不起作用,因为找到的返回是在promise.done()完成之前执行的。我怎样才能解决这个问题 非常感谢 function equipmentHasOrder(equipment) { var orderObjectStore = $.indexedDB("order").objectStore("openOrders"); var found = false; var index = order
function equipmentHasOrder(equipment) {
var orderObjectStore = $.indexedDB("order").objectStore("openOrders");
var found = false;
var index = orderObjectStore.index("EQUIPMENT");
var promise = index.get(equipment);
promise.done(function (result, event) {
if(result !== undefined) {
found = true;
}
});
return found;
promise.fail(function (error, event) {
error; // Type of error that has occured
event; // Error event
event.type; // indicates if there was an error or an exception
});
您可以使用
链接承诺,然后:
function equipmentHasOrder(equipment){
var orderObjectStore = $.indexedDB("order").objectStore("openOrders");
var index = orderObjectStore.index("EQUIPMENT");
var promise = index.get(equipment);
// note the `.then` for chaining and the fact we're returning it.
return promise.then(function (result) {
return (result !== undefined);
});
}
然后您将能够执行以下操作:
equipmentHasOrder(equipment).then(function(result){
if(result){ // found
} else { // handle not found
}
});
早上好,所以我发现使用indexedDB不可能编写一个函数,因为异步行为,如果发现记录,则返回true,如果未找到记录,则返回false,对吗?