承诺:一次性而不是连续地发射所有功能链

时间:2014-04-10 01:48:13

标签: javascript jquery

试图掌握将异步函数链接在一起,因为我正在学习使用Parse.com

我有一个类似的功能:

delete_post(post_id)
.then(function (){
    _this.show_posts(thread_id);
}).then(function (){
    _this.clear_submit_forum();
})

它运作正常!现在当我添加一个前面的函数,它看起来像:

show_confirmation_alert("are you absolutely sure you want to delete the post?")
.then(function(){
    delete_post(post_id);
}).then(function (){
    _this.show_posts(thread_id);
}).then(function (){
    _this.clear_submit_forum();
})

我的节目确认功能做了这样的事情:

     $popup = create_popup(message)

     var def = new $.Deferred();

     $popup.find(".ok").bind("click", function (){
        def.resolve();
     });
     $popup.find(".cancel").bind("click", function(){
        def.reject();
     });
    $popup.popup();
    $popup.popup("open");
    return def.promise();

但是当我在弹出窗口单击“确定”时,所有功能都开始运行,因此没有用。我真的希望有一个弹出窗口,它可以调用一系列函数,而无需每次添加处理程序时都能让我的生活变得更轻松。什么可能导致这种情况。有什么我真的很想念承诺吗?我认为当时的函数不能运行,直到它收到前面函数的一个已解决的答案,那么为什么它们不是串联链接?感谢

0 个答案:

没有答案