【发布时间】:2015-09-16 04:00:25
【问题描述】:
我有以下:
function functionA() {
var myVar = functionB();
functionC(myVar);
}
函数B需要回答的时间,取决于用户输入。可能是1s,也可能是10s。所以 functionC 总是被一个未定义的值调用,因为 functionB() 还没有完成。所以我尝试了这个:
function functionA() {
var def = $.Deferred();
var myVar = functionB();
def.resolve();
$.when(def).done(function () {
functionC(myVar);
});
}
这也不起作用。我在 StackOverflow 上看到了这个:javascript function wait until another function to finish 但它怎么能转移到我的问题上呢? 回顾一下,functionA 的执行需要停止,直到 functionB() 得到响应。谢谢。
【问题讨论】:
-
你考虑过使用functionC()作为functionB()的回调
-
@ReyamOki “回顾一下,functionA 的执行需要停止,直到 functionB() 得到响应。”“functionA”似乎没有返回任何值?可以形容“需要停下来”吗? ,创建stacksn-ps,jsfiddlejsfiddle.net进行演示?
标签: javascript jquery promise jquery-deferred