无法删除延迟对象的状态


 var defer8 = $.Deferred();
    function get_outlet_data()
    {
        db.transaction(populateDBOutlet);
        retrieve_Data_outlet(localStorage.username);
     defer8.resolve();
    }

$.when(defer8).then(function() {
 });

在这里,我使用 defer 对象来等待函数get_outlet_data运行。但是我需要在 When 函数中删除 defer8 的状态

var get_outlet_data = function () {
    var deferred = $.Deferred();
    db.transaction(populateDBOutlet);
    retrieve_Data_outlet(localStorage.username);
    deferred.resolve(); // Note: the lines above are probably asynchronous, so you want to resolve the promise when they are done
    return deferred.promise();
};
$.when(get_outlet_data()).then(function () {
    // No need to remove the state, because the deferred will be re-created on a second call
});

我所做的是在函数内移动延迟对象,因此每次调用函数时都会重新创建它。因此,应该不需要"重置状态"(我认为无论如何都是不可能的)

编辑:只是为了让你知道,你的代码中有一个错误:$.when不接受延迟对象,它接受一个承诺。所以使用它的正确方法是 $.when(deferred.promise(), ...) 而不是 $.when(deferred, ...)

最新更新