gpt4 book ai didi

javascript - 在同步方法中等待异步方法?

转载 作者:行者123 更新时间:2023-11-30 11:12:30 26 4
gpt4 key购买 nike

情况是这样的:

我有2个JS函数,我需要等待这2个方法来做其他事情。
所以我写了:

$.when(foo1(), foo2()).done(function () {
//do something
});

这很有效。

但是,在某些情况下,foo2() 必须在我的 DOM 中加载部分 View :

function foo2() {
$("#bar").load('/controller/action')
}

看来 .done 回调中的代码是在 foo1()foo2() 结束时执行的 而部分 View 未完全加载

我怎么能告诉 foo2() 等待部分 View 加载结束,然后再说“好的,我完成了我的工作,你可以继续”?

最佳答案

不幸的是,load() 没有返回一个 promise 或 deferred 对象。相反,要使这项工作正常进行,您可以从 foo2() 手动返回一个延迟对象,您在 load() 完成后解析该对象。像这样:

function foo2() {
var deferred = $.Deferred()
$("#bar").load('/controller/action', function() {
deferred.resolve();
});
return deferred;
}

关于javascript - 在同步方法中等待异步方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53104772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com