$.when promise 解决得太早
$.when promise is resolving too early
我想知道为什么 $.when 解析得太早了?
只有当所有其他承诺都已解决时,我才需要它来解决。
我错过了什么吗?
更新:http://jsfiddle.net/7hdx5j6z/6/
var promises = []
localforage.iterate(function(value, key) {
if ( key.indexOf('params_') === -1 ) {
promises.push(localforage.removeItem(key))
console.log(promises)
}
})
$.when.apply($, promises).then(function() {
console.log('all done!')
})
iterate
本身 returns 一个承诺。在填充 promises
数组之前,您需要等待。
var promises = []
var x = localforage.iterate(function (value, key) {
if (key.indexOf('params_') === -1) {
var promise = localforage.removeItem(key)
promises.push(promise)
console.log(promise)
}
})
console.log("x", x);
x.then(function () {
$.when.apply($, promises).then(function () {
console.log('all done!')
})
});
我想知道为什么 $.when 解析得太早了? 只有当所有其他承诺都已解决时,我才需要它来解决。 我错过了什么吗?
更新:http://jsfiddle.net/7hdx5j6z/6/
var promises = []
localforage.iterate(function(value, key) {
if ( key.indexOf('params_') === -1 ) {
promises.push(localforage.removeItem(key))
console.log(promises)
}
})
$.when.apply($, promises).then(function() {
console.log('all done!')
})
iterate
本身 returns 一个承诺。在填充 promises
数组之前,您需要等待。
var promises = []
var x = localforage.iterate(function (value, key) {
if (key.indexOf('params_') === -1) {
var promise = localforage.removeItem(key)
promises.push(promise)
console.log(promise)
}
})
console.log("x", x);
x.then(function () {
$.when.apply($, promises).then(function () {
console.log('all done!')
})
});