【问题标题】:jQuery indexedDB - return true if record foundjQuery indexedDB - 如果找到记录,则返回 true
【发布时间】:2015-02-14 04:05:51
【问题描述】:

我想编写一个函数,使用 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
});

【问题讨论】:

    标签: jquery return promise indexeddb


    【解决方案1】:

    你可以用then链接承诺:

    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,对吗?
    猜你喜欢
    • 2021-11-24
    • 2013-07-24
    • 2011-02-21
    • 2011-12-27
    • 2020-10-28
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多