我$.each()
使用诺言完成后试图调用一个函数。但是,当我尝试以下代码时,我得到了Uncaught TypeError: $.each(...).promise is not a function
。
$.each(snapshot.val(), function(chat, i){
firebase.database().ref('chats/'+chat+'/msgs').once('value', function(snap){
if (Object.keys(snap.val())[0] != i){
notification = true;
}
});
}).promise().done( function(){ alert("All was done"); } );
我对诺言比较陌生,有人可以让我知道如何解决这个问题吗?
因此,如果传递给该函数的once
是您的回调,以下内容将为您提供帮助。
var promises = [];
$.each(snapshot.val(), function(chat, i){
var dfd = $.Deferred();
firebase.database().ref('chats/'+chat+'/msgs').once('value', function(snap){
if (Object.keys(snap.val())[0] != i){
notification = true;
}
dfd.resolve();
});
promises.push(dfd);
})
$.when.apply($, promises).done(function () {
alert("All was done");
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句