考虑给定的代码
function foo() {
var bar = [];
asyncRequest.get(function(data) {
bar = data;
});
return bar;
}
当 bar 填充了来自回调的数据而不是之前的数据时,你如何返回它?在 50% 的情况下,较早到达返回,然后回调完成并返回空数组。
考虑给定的代码
function foo() {
var bar = [];
asyncRequest.get(function(data) {
bar = data;
});
return bar;
}
当 bar 填充了来自回调的数据而不是之前的数据时,你如何返回它?在 50% 的情况下,较早到达返回,然后回调完成并返回空数组。
当 bar 填充了来自回调的数据而不是之前的数据时,你如何返回它?
你不能。相反,让函数接受它调用的回调结果:
function foo(callback) {
asyncRequest.get(function(data) {
// (More stuff here, presumably)
callback(data);
});
}
或者,如果它真的只是一个传递(我没有写过“(这里有更多东西,大概)”),那么:
function foo(callback) {
asyncRequest.get(callback);
}