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

标签 javascript jquery jquery-deferred

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

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

这样的事情可能吗?

最佳答案

是的,但由于普通函数不返回延迟对象,因此您需要自己创建延迟对象。

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

...然后让 firstFunction() 在适当的点解析 dfd (通过 dfd.resolve())。因此,如果 firstFunction 包含 AJAX 请求,比如说,它可能如下所示:

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

关于javascript - Jquery deferred - 在前一个函数完成之前推迟函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22199244/

相关文章:

javascript - 将弹出子菜单项添加到子菜单中

javascript - 如何一键禁用 anchor 标记

javascript - pjscrape 延迟 btw 抓取 : how?

javascript - js/jquery 传递数组项

javascript - 带有旧回调的新 $.Deferred 对象

javascript - 使用 for 循环和 setInterval 对 Canvas 进行动画处理

javascript - 后备图像和超时 - 外部内容。 Javascript

jquery - 以月或年 xaxis 进行 float

javascript - 如何覆盖延迟对象传递的闭包

javascript:提取字符串的一部分(正则表达式)