Anu*_*wan 1 javascript callback
首先,看看这个样本:
var calculate = function(callback) {
// calculating...
callback(5);
}
var parent = function() {
var x = 0;
var calculatedValue = calculate(function(output) {
return output; // return #1
x = output;
});
return x; // return #2
return calculatedValue; // return #3
}
Run Code Online (Sandbox Code Playgroud)
我的目标是在calculate函数内“计算”一个值,并且该值必须由parent函数返回。
为了实现这一点,我应该在哪里放置 return 语句,我应该用它返回什么?
我尝试了 3 种情况:
return #1
这里的output值是由callback函数返回的,而不是parent函数,所以 parent 返回 undefined。
return #2
这里x的值是在执行callback函数之前返回的,所以parent返回0。
return #3+return #1
在这里,我试图返回output从callback,然后(思想,回调的返回值可能在某种程度上成为的返回值calculate本身),返回的calculatedValue,但同样,父母返回undefined。
请提出一种方法,然后在这里
在这种特殊情况下,您的回调是同步的,这意味着您可以像这样从它返回:
var calculate = function(callback) {
// calculating...
return callback(5);
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以像这样从父级返回:
var parent = function() {
var calculatedValue = calculate(function(output) {
return output; // tells the callback to do nothing with the output, just return it.
});
return calculatedValue; // return from parent
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果calculate是异步函数,则此方法将不起作用。看看如何从异步调用返回响应?为了那个原因。