jQuery返回值deferred.then成功时在函数中
我写了一个函数,我想返回成功的延期函数的结果。但是,由于要返回的值位于doneCallbacks
的范围内,所以在运行console.log(runSearch())
时runSearch()
函数返回undefined。我如何让包含函数返回成功返回的值deferred.then()
?jQuery返回值deferred.then成功时在函数中
function runSearch(){ $.get("search.php").then(
function() {
// I want runSearch() to return the results of this function
}, function() {
console.log("$.get failed!");
}
);
}
编辑:感谢所有帮助大家。由于我的目标是在函数中使用返回值,因此我只在doneCallbacks
中包含了该函数。
function runSearch(){ $.get("search.php").then(
function() {
var returnValue = 'Return Value'
function doSomethingWithReturn(returnValue) {
console.log(returnValue);
}
doSomethingWithReturn(returnValue);
}, function() {
console.log("$.get failed!");
}
);
}
runSearch(); // successfully logs returnValue to console.
可能不是最优雅的解决方案,但适用于这种情况。
回答:
你不能那样做。
相反,您需要返回承诺,然后使所有调用该函数的代码异步。
欲了解更多信息,请参阅my blog。
以上是 jQuery返回值deferred.then成功时在函数中 的全部内容, 来源链接: utcz.com/qa/265890.html