JavaScriptにおけるコールバックへの非同期結果の受け渡し
では今度は、非同期操作が完了した後、コンソールには何も出力せずに、 何らかの結果を取得するようにしましょう。例えばAJAXを通じて取得されたかもしれない データの配列であるとします。しかし、AJAXの扱い方をまだ知らないので、 単にこれをシミュレートすることにします:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // 結果の配列
}, 3000);
}
結果の配列がコールバックのパラメータとして渡されるようにしましょう:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // 結果をパラメータとして渡す
}, 3000);
}
これで、関数makeの呼び出しにコールバックを渡す際、
その中にパラメータを書くことができます。
このパラメータには非同期操作の結果が入ります:
make(function(res) {
console.log(res); // 私たちの配列
});
コールバックのコードを完成させ、結果の配列の要素の合計を求めるようにしてください。