每次jQuery承诺后

商标代码

$.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"); } );

我对诺言比较陌生,有人可以让我知道如何解决这个问题吗?

thedarklord47

因此,如果传递给该函数的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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章