考虑给定代码
function foo() {
var bar = [];
asyncRequest.get(function(data) {
bar = data;
});
return bar;
}
如果在回调中填充数据而不是之前,你如何返回bar?在50%的情况下,返回先前达到,然后回调结束并返回空数组。
答案 0 :(得分:2)
如果在回调中填充了数据而不是之前的回复,那么你怎么回事?
你做不到。相反,让函数接受它调用的回调结果:
function foo(callback) {
asyncRequest.get(function(data) {
// (More stuff here, presumably)
callback(data);
});
}
或者,如果它真的只是一个传递(没有什么我写的“(更多东西在这里,大概是)),那么:
function foo(callback) {
asyncRequest.get(callback);
}