Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery indexedDB-如果找到记录,则返回true_Jquery_Return_Promise_Indexeddb - Fatal编程技术网

jQuery indexedDB-如果找到记录,则返回true

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

我想编写一个函数,使用jQuery插件检查IndexedDB中是否存在定义的值

我尝试使用它,但它不起作用,因为找到的返回是在promise.done()完成之前执行的。我怎样才能解决这个问题

非常感谢

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,对吗?