Учитывая следующий код:
rectangle.js:
module.exports = (x,y,callback) => {
if (x <= 0 || y <= 0)
setTimeout(() =>
callback(new Error("Rectangle dimensions should be greater than zero: l = "
+ x + ", and b = " + y),
null),
2000);
else
setTimeout(() =>
callback(null, {
perimeter: () => (2*(x+y)),
area:() => (x*y)
}),
2000);
}
index.js:
var rect = require('./rectangle');
function solveRect(l,b) {
console.log("Solving for rectangle with l = "
+ l + " and b = " + b);
rect(l,b, (err,rectangle) => {
if (err) {
console.log("ERROR: ", err.message);
}
else {
console.log("The area of the rectangle of dimensions l = "
+ l + " and b = " + b + " is " + rectangle.area());
console.log("The perimeter of the rectangle of dimensions l = "
+ l + " and b = " + b + " is " + rectangle.perimeter());
}
});
console.log("This statement after the call to rect()");
};
solveRect(2,4);
solveRect(3,5);
solveRect(0,5);
solveRect(-3,5);
В этой строке rect(l,b, (err,rectangle)
мы вызываем функцию rect
и передаем ей l,b, err,rectangle
. Я вижу, что такое l,b
, но не вижу и не понимаю, что такое err, rectangle
?
Также не могу понять, где определение функции callback
? Это внутренняя функция?