【发布时间】:2016-01-14 05:45:28
【问题描述】:
我有一种情况,我正在创建一个仅在异步操作完成时才返回的节点模块。一种方法(如下所示)是为 module.exports 分配一个带有回调参数的函数。在函数内部,您将返回回调。
这是我描述的一个例子,完成了回调:
// module called test.js
module.exports = function(done) {
// do something asynchronous here
process.nextTick(function() {
done(); // call done when the asynchronous thing is complete...
}
}
考虑到我没有在任何地方定义它,我正在挂断的地方是回调确实是如何执行的......
例如,在 vanilla javascript 中,我可以将 done 作为参数传递,然后在函数中调用它,只要我在调用中创建回调函数即可。
function testAsyncCb(msg, done) {
console.log(msg);
setTimeout( function() {
done();
}, 1000);
console.log("last line in code");
}
testAsyncCb("testing", function(){ console.log("done"); }); // invocation with callback function
回到第一个节点示例,在某个地方, require() 对 module.exports 的调用正在为 done() 创建一个函数来解析正确吗?如果没有,回调是如何解决的?
很难找到有关其工作原理的信息。任何帮助/方向表示赞赏。
【问题讨论】:
标签: javascript node.js callback asynccallback