【发布时间】:2020-09-25 01:59:08
【问题描述】:
module.exports = (x, y , calllback) => {
if (x <= 0 || y <= 0) {
setTimeout(() => callback(new Error("Rectangle dimension should be greater than zero"), null),
2000);
}
else {
setTimeout(() =>
calllback(null, {
perimeter: () => 2 * (x + y),
area: () => x * y
}),
2000);
}
}
我的问题是:为什么我必须在回调函数之前做 () => 因为 setTimeout 需要一个函数作为输入,所以我为什么不能直接做 setTimeout(callback(...), 2000)。 可能我对这个回调函数有一定的了解,如果有人能帮帮我就好了!
感谢每一条评论。
【问题讨论】:
-
因为
setTimeout等待函数,如果callback(...)没有返回一个新函数,你就不能这样做。但是你可以做setTimeout(callback, 2000)然后callback将在2 秒后被调用。欲了解更多信息,请阅读MDN
标签: javascript node.js callback settimeout