Yang perlu saya lakukan adalah menjalankan fungsi callback ketika eksekusi fungsi saya saat ini berakhir.
function LoadData()
{
alert('The data has been loaded');
//Call my callback with parameters. For example,
//callback(loadedData , currentObject);
}
Seorang konsumen untuk fungsi ini harus seperti ini:
object.LoadData(success);
function success(loadedData , currentObject)
{
//Todo: some action here
}
Bagaimana saya menerapkan ini?
javascript
Amgad Fahmi
sumber
sumber
object.LoadData(success)
panggilan harus setelahfunction success
ditentukan. Jika tidak, Anda akan mendapatkan pesan kesalahan yang memberitahukan bahwa fungsi tersebut tidak didefinisikan.Jawaban:
Sebenarnya, kode Anda akan berfungsi sebagaimana mestinya, hanya menyatakan panggilan balik Anda sebagai argumen dan Anda dapat memanggilnya langsung menggunakan nama argumen.
Dasar
Itu akan memanggil
doSomething
, yang akan memanggilfoo
, yang akan mengingatkan "barang-barang masuk di sini".Perhatikan bahwa sangat penting untuk meneruskan referensi fungsi (
foo
), daripada memanggil fungsi dan meneruskan hasilnya (foo()
). Dalam pertanyaan Anda, Anda melakukannya dengan benar, tetapi itu hanya layak ditunjukkan karena itu adalah kesalahan umum.Lebih banyak barang canggih
Terkadang Anda ingin memanggil panggilan balik sehingga melihat nilai spesifik untuk
this
. Anda dapat dengan mudah melakukannya dengancall
fungsi JavaScript :Anda juga bisa memberikan argumen:
Terkadang berguna untuk meneruskan argumen yang ingin Anda beri panggilan balik sebagai array, bukan secara individual. Anda dapat menggunakannya
apply
untuk melakukan itu:sumber
setTimeout()
. Jawabannya adalah untuk menutup panggilan balik dalam penutupan:doSomething(function(){foo('this','should','work')})
Ini adalah praktik yang baik untuk memastikan callback adalah fungsi yang sebenarnya sebelum mencoba untuk mengeksekusinya:
sumber
if(typeof callback == "function")
akan memiliki hasil yang sama.callback &&
...2 sen saya. Sama tapi berbeda ...
sumber
sumber
============================================
============================================
Hasilnya adalah:
sumber
Jika Anda ingin menjalankan fungsi ketika sesuatu dilakukan. Salah satu solusi yang baik adalah mendengarkan acara. Sebagai contoh, saya akan mengimplementasikan a
Dispatcher
, sebuahDispatcherEvent
kelas dengan ES6, lalu:Dispatcher:
DispatcherEvent:
Selamat coding!
p / s: Kode saya hilang menangani beberapa pengecualian kesalahan
sumber
sumber
Saat memanggil fungsi panggilan balik, kita dapat menggunakannya seperti di bawah ini:
consumingFunction(callbackFunctionName)
Contoh:
Ini adalah Codepend dengan contoh lengkap.
sumber
Beberapa jawaban, meski benar mungkin agak sulit dipahami. Berikut adalah contoh istilah awam:
Panggilan balik berarti, "Jake" selalu ditambahkan ke pengguna sebelum menampilkan daftar pengguna dengan
console.log
.Sumber (YouTube)
sumber
Mencoba:
Fungsinya adalah kelas pertama dalam JavaScript ; Anda bisa membagikannya.
sumber