Jquery延迟 - 在前一个函数完成之前推迟一个函数调用

时间:2014-03-05 13:31:25

标签: javascript jquery jquery-deferred

我正在寻找通过promises返回的对象,我希望在执行另一个函数之前确保一个异步函数完全完成。

$.when(firstFunction()).done(secondFunction());

是这样的吗?

1 个答案:

答案 0 :(得分:2)

是的,但是因为普通函数不返回延迟对象,所以你需要自己创建延迟对象。

var dfd = new $.Deferred;
dfd.done(secondFunction);
firstFunction();

...然后在适当的时候firstFunction()解析dfd(通过dfd.resolve())。因此,如果firstFunction包含一个AJAX请求,那么它可能如下所示:

function firstFunction() {
    $.get('some/file.txt').done(function() { dfd.resolve(); });
}