$.当vs Q.延期行为时

  • 本文关键字:vs jquery promise q
  • 更新时间 :
  • 英文 :


我正在与Q.JS库合作做出承诺。我已经尝试了以下方案,其中一个函数在执行某个代码之前等待另一个函数以解决延期,并且可以与JQuery Native Prosiss一起使用。但是,同一代码立即使用q.js返回。有什么想法吗?

小提琴:http://jsfiddle.net/arn8f/5/


html:

<button id='go'>Go</button>
<p id='txt'></p>
<p id='txt2'></p>

jQuery代码(等待2秒,然后更改文本):

$(document).ready(function () {
    var dfd = $.Deferred();
    $('#go').click(function () {
        $('#txt').text('Clicked!');
        promised();
        setTimeout(dfd.resolve, 2000);
    });
    function promised() {
        $.when(dfd).done(function () {
            $('#txt2').text('Done');
        });
    }
})

q.js代码(立即更改文本):

$(document).ready(function () {
    var dfd = Q.defer();
    $('#go').click(function () {
        $('#txt').text('Clicked!');
        promised();
        setTimeout(dfd.resolve, 2000);
    });
    function promised() {
        Q.when(dfd, function () {
            $('#txt2').text('Done');
        });
    }
})

我猜,您应该这样使用Q.when

Q.when(dfd.promise, function () { 
     // .. 
});

请注意,它是dfd.promise,而不仅仅是dfd

工作演示。

相关内容

  • 没有找到相关文章

最新更新