Versi baru untuk skenario di mana panggilan balik akan dipanggil oleh beberapa fungsi lain, bukan kode Anda sendiri, dan Anda ingin menambahkan parameter tambahan.
Misalnya, mari kita berpura-pura memiliki banyak panggilan bersarang dengan panggilan balik sukses dan kesalahan. Saya akan menggunakan janji sudut untuk contoh ini tetapi kode javascript dengan panggilan balik akan sama untuk tujuan tersebut.
someObject.doSomething(param1, function(result1) {
console.log("Got result from doSomething: " + result1);
result.doSomethingElse(param2, function(result2) {
console.log("Got result from doSomethingElse: " + result2);
}, function(error2) {
console.log("Got error from doSomethingElse: " + error2);
});
}, function(error1) {
console.log("Got error from doSomething: " + error1);
});
Sekarang Anda mungkin ingin mengacaukan kode Anda dengan mendefinisikan fungsi untuk mencatat kesalahan, menjaga asal kesalahan untuk tujuan debugging. Ini adalah bagaimana Anda akan melanjutkan untuk memperbaiki kode Anda:
someObject.doSomething(param1, function (result1) {
console.log("Got result from doSomething: " + result1);
result.doSomethingElse(param2, function (result2) {
console.log("Got result from doSomethingElse: " + result2);
}, handleError.bind(null, "doSomethingElse"));
}, handleError.bind(null, "doSomething"));
/*
* Log errors, capturing the error of a callback and prepending an id
*/
var handleError = function (id, error) {
var id = id || "";
console.log("Got error from " + id + ": " + error);
};
Fungsi panggilan masih akan menambahkan parameter kesalahan setelah parameter fungsi panggilan balik Anda.