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

回到顶部