Geri arama işleminin kendi kodunuz tarafından değil başka bir işlev tarafından çağrılacağı ve ek parametreler eklemek istediğiniz senaryo için yeni bir sürüm.
Örneğin, başarılı ve hata geri aramaları olan çok sayıda iç içe çağrınız olduğunu varsayalım. Bu örnek için açısal vaatler kullanacağım, ancak geri çağrıları olan herhangi bir javascript kodu bu amaç için aynı olacaktır.
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);
});
Artık hata ayıklama amacıyla hatanın kaynağını koruyarak hataları günlüğe kaydetmek için bir işlev tanımlayarak kodunuzu karmaşık hale getirmek isteyebilirsiniz. Kodunuzu yeniden düzenlemeye şu şekilde devam edersiniz:
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);
};
Arama işlevi, geri arama işlevi parametrelerinizden sonra hala hata parametresini ekleyecektir.