Ich möchte Ihnen ein sehr einfaches Beispiel für die Verwendung eines Rückrufs im Node.js-Stil geben:
/**
* Function expects these arguments:
* 2 numbers and a callback function(err, result)
*/
var myTest = function(arg1, arg2, callback) {
if (typeof arg1 !== "number") {
return callback('Arg 1 is not a number!', null); // Args: 1)Error, 2)No result
}
if (typeof arg2 !== "number") {
return callback('Arg 2 is not a number!', null); // Args: 1)Error, 2)No result
}
if (arg1 === arg2) {
// Do somethign complex here..
callback(null, 'Actions ended, arg1 was equal to arg2'); // Args: 1)No error, 2)Result
} else if (arg1 > arg2) {
// Do somethign complex here..
callback(null, 'Actions ended, arg1 was > from arg2'); // Args: 1)No error, 2)Result
} else {
// Do somethign else complex here..
callback(null, 'Actions ended, arg1 was < from arg2'); // Args: 1)No error, 2)Result
}
};
/**
* Call it this way:
* Third argument is an anonymous function with 2 args for error and result
*/
myTest(3, 6, function(err, result) {
var resultElement = document.getElementById("my_result");
if (err) {
resultElement.innerHTML = 'Error! ' + err;
resultElement.style.color = "red";
//throw err; // if you want
} else {
resultElement.innerHTML = 'Result: ' + result;
resultElement.style.color = "green";
}
});
und den HTML-Code, der das Ergebnis wiedergeben wird:
<div id="my_result">
Result will come here!
</div>
Sie können hier mit ihm spielen: https://jsfiddle.net/q8gnvcts/ - zum Beispiel versuchen, eine Zeichenkette statt einer Zahl zu übergeben: myTest('some string', 6, function(err, result) und sehen Sie das Ergebnis.
Ich hoffe, dass dieses Beispiel hilfreich ist, da es die grundlegende Idee von Rückruffunktionen darstellt.