ผมขอยกตัวอย่างสไตล์ Node.js ให้คุณใช้โทรกลับ:
/**
* 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";
}
});
และ HTML ที่จะแสดงผล:
<div id="my_result">
Result will come here!
</div>
คุณสามารถเล่นกับมันได้ที่นี่: https://jsfiddle.net/q8gnvcts/ - ตัวอย่างเช่นลองส่งสตริงแทนหมายเลข: myTest ('สตริงบางอัน', 6, ฟังก์ชัน (ข้อผิดพลาด, ผลลัพธ์) .. และดูผลลัพธ์
ฉันหวังว่าตัวอย่างนี้ช่วยเพราะมันแสดงถึงแนวคิดพื้นฐานของฟังก์ชั่นการโทรกลับ