等待异步JavaScript函数返回
答
我不知道这对你是一个可能的解决方案,但你可以实现打破你的代码2个功能所需的结果。 假设这是你想要做什么:
基本上这是你原来的功能:
function origFunc() {
codeBeforeThirdPartyFunc();
ThirdPartyFunc(oldCallBackFunc);
Wait();
codeAfterCallBackFunc();
}
您可以修改的东西,如代码流:
function newFunc() {
codeBeforeThirdPartyFunc();
ThirdPartyFunc(newCallBackFunc);
}
function newCallBackFunc() {
oldCallBackFunc();
codeAfterCallBackFunc();
}
这将消除等待循环。而据我所知,忙等待期间不工作在IE(因为?只有上帝知道)..
答
我不知道,如果沙拉德的解决方案将适用于所有情况(例如,如果你的函数调用所以远远地链接,你必须传递数据作为变量而不是参数)。与全局变量相同的问题。 JavaScript只是没有“等待”能力。
虽然我也有类似的问题,并与jQuery,我结束了一个百战天龙型解决方案,让您吨控件时JavaScript函数执行上。我刚刚张贴在这里作为一个答案,以我自己的问题(但我它是不是签一个答案 - 寻找我的用户名埃米尔):How to get a variable returned across multiple functions - Javascript/jQuery
只是拥抱异步。不要试图去对抗它。 – Anurag 2010-06-16 06:59:39