等待异步javascript函数返回

Nip*_*rus 8 javascript asynchronous callback

我正在使用第三方库提供的功能.此函数将回调函数作为参数,但我想等待在继续之前调用此回调函数.是否有标准/可接受的方式来做到这一点?

Sha*_*rad 6

我不确定这是否是一个可能的解决方案,但您可以通过将代码分解为2个函数来实现所需的结果.假设这是你打算做的:

基本上这是你原来的功能:

function origFunc() {

    codeBeforeThirdPartyFunc();
    ThirdPartyFunc(oldCallBackFunc);
    Wait();
    codeAfterCallBackFunc();
}
Run Code Online (Sandbox Code Playgroud)

您可以使用以下内容修改代码流:

function newFunc() {
    codeBeforeThirdPartyFunc();
    ThirdPartyFunc(newCallBackFunc);
}
function newCallBackFunc() {
  oldCallBackFunc();
  codeAfterCallBackFunc();
}
Run Code Online (Sandbox Code Playgroud)

这将消除等待循环.据我所知,忙碌的等待在IE中不起作用(因为?上帝只知道)..