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, ...)