jQuery return 值 deferred.then 在函数中成功
jQuery return value of deferred.then success when in function
我写了一个函数,我想 return 一个成功的延迟函数的结果。但是,由于我想要 returned 的值在 doneCallbacks
的范围内,因此 runSearch()
函数 return 在 运行 console.log(runSearch())
时未定义.如何让包含函数 return 成功 deferred.then()
的 returned 值?
function runSearch(){
$.get( "search.php" ).then(
function() {
// I want runSearch() to return the results of this function
}, function() {
console.log( "$.get failed!" );
}
);
}
编辑: 感谢大家的帮助。因为我的目标是在函数中使用 return 值,所以我只是将函数包含在 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.
可能不是最优雅的解决方案,但适用于这种情况。
你不能那样做。
相反,您需要 return 承诺,然后使所有调用该函数的代码也异步。
有关详细信息,请参阅 my blog。
我写了一个函数,我想 return 一个成功的延迟函数的结果。但是,由于我想要 returned 的值在 doneCallbacks
的范围内,因此 runSearch()
函数 return 在 运行 console.log(runSearch())
时未定义.如何让包含函数 return 成功 deferred.then()
的 returned 值?
function runSearch(){
$.get( "search.php" ).then(
function() {
// I want runSearch() to return the results of this function
}, function() {
console.log( "$.get failed!" );
}
);
}
编辑: 感谢大家的帮助。因为我的目标是在函数中使用 return 值,所以我只是将函数包含在 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.
可能不是最优雅的解决方案,但适用于这种情况。
你不能那样做。
相反,您需要 return 承诺,然后使所有调用该函数的代码也异步。
有关详细信息,请参阅 my blog。