Penghantaran Hasil Asinkronus dalam Panggilan Balik di JavaScript
Sekarang, andaikan operasi asinkronus selepas selesai tidak memaparkan apa-apa di konsol, tetapi mendapatkan beberapa hasil. Katakan ia adalah tatasusunan dengan data, yang, sebagai contoh, boleh diperoleh melalui AJAX. Tetapi memandangkan kita belum tahu cara bekerja dengan AJAX, kita hanya akan mensimulasikan pemerolehannya:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // tatasusunan dengan hasil
}, 3000);
}
Mari kita buat supaya tatasusunan dengan hasilnya dihantar ke dalam parameter panggilan balik:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // hantar hasil sebagai parameter
}, 3000);
}
Sekarang, semasa menghantar panggilan balik dalam panggilan fungsi
make, kita boleh menulis parameter di dalamnya
- dan parameter ini akan menerima hasil operasi
asinkronus:
make(function(res) {
console.log(res); // tatasusunan kita
});
Tambahkan kod panggilan balik supaya ia mencari hasil tambah unsur-unsur tatasusunan dengan hasilnya.