首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery逐步使用$.Deferred()

jquery逐步使用$.Deferred()
EN

Stack Overflow用户
提问于 2015-09-23 13:25:51
回答 1查看 60关注 0票数 0

这里有一个测试代码:

代码语言:javascript
复制
var dfd_1 = $.Deferred(),
    dfd_2 = $.Deferred(),
    dfd_3 = $.Deferred();

function test(content, waitTime, dfd) {
    console.log(content + ' begin');
    setTimeout(function() {
        console.log(content + ' end');
        dfd.resolve();
    }, waitTime);
    return dfd.promise();
}

$.when(test('first', 2000, dfd_1), test('second', 4000, dfd_2), test('third', 6000, dfd_3))
.then(function() {
    console.log('all done');
});

控制台的结果是:

代码语言:javascript
复制
first begin 
second begin
third begin

first end
second end
third end

all done

3函数一步一步地开始和结束,但我需要这样的结果(开始结束,开始结束.):

代码语言:javascript
复制
first begin
first end

second begin
second end

third begin
third end

all done

如何使$.Deferred逐步工作?请帮我解决问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-23 13:42:08

使用then()

代码语言:javascript
复制
test('first', 2000, dfd_1)
    .then(function() {
        return test('second', 4000, dfd_2);
    })
    .then(function() {
        return test('third', 6000, dfd_3);
    })
    .then(function() {
        console.log('all done');
    })
;

小提琴:http://jsfiddle.net/saj5stt9/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32740871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档