我有一个函数包含异步函数的函数,但我需要在异步调用解析后返回第一个函数。我正在尝试使用
return JQuery.when()
以下功能是简历。
function getData(x){
if (x = 1){
return JQuery.when(asynFunction().then(function (data){
(...);
return;
});
}
else {
(...)
return;
}
}
目标是在异步调用完成之前getData()不会返回。 有什么想法吗?
谢谢你的时间!
答案 0 :(得分:1)
假设asynFunction()
返回Promise,getData
可能最简单,如下所示:
function getData(x) {
if (x = 1) {
return asynFunction();
}
else {
var myValue = 'whatever';
return myValue;
}
}
然而,在所有情况下安排函数返回Promise通常更好(尽管不是绝对必要)。这保证了无论何处getData()
被调用,结果都可以以异步方式处理(最终使用.then
或.done()
),即使它是同步派生的。
function getData(x) {
if (x = 1) {
return asynFunction();
}
else {
...
var myValue = 'whatever';
return jQuery.when(myValue);
}
}