与えられたコードを考慮する
function foo() {
var bar = [];
asyncRequest.get(function(data) {
bar = data;
});
return bar;
}
前ではなく、コールバックからのデータで満たされているときにバーを返すにはどうすればよいですか? 50% のケースでは、return に到達する前にコールバックが終了し、空の配列が返されます。
与えられたコードを考慮する
function foo() {
var bar = [];
asyncRequest.get(function(data) {
bar = data;
});
return bar;
}
前ではなく、コールバックからのデータで満たされているときにバーを返すにはどうすればよいですか? 50% のケースでは、return に到達する前にコールバックが終了し、空の配列が返されます。
前ではなく、コールバックからのデータで満たされているときにバーを返すにはどうすればよいですか?
できません。代わりに、関数が結果で呼び出すコールバックを受け入れるようにします。
function foo(callback) {
asyncRequest.get(function(data) {
// (More stuff here, presumably)
callback(data);
});
}
または、それが本当に単なるパススルーである場合 (「(More stuff here, おそらく)」と書いた場所は何もありません)、次のようになります。
function foo(callback) {
asyncRequest.get(callback);
}