我正在尝试学习如何使用Meteor的wrapAsync助手。我想用它来顺序调用异步函数(不是同时)。虽然我的代码有效,但是当它完成时,服务器会重新启动,这让我想知道我的代码中是否存在错误。不幸的是,没有消息说它重新开始的原因。我错过了什么吗?
代码位于我的MeteorPad demo以下。
var doAsyncIO = function (num, callback) {
setTimeout( function () {
// wrapAsync will use the following callback as the basis of returning results synchronously
callback(null, 'This is delayed result #' + num ); // nodeJS form: cb(error,result)
}, 2500); // wait 2.5 seconds before returning result
};
// Now create a synchronous version of doAsyncIO that sleeps, not blocks
// so that the CPU can do other tasks while waiting for the result
var doSyncIO = Meteor.wrapAsync(doAsyncIO);
// Now call doSyncIO twice sequentially (not simultaneously)
console.log('\n*** Starting first call to doSyncIO');
var result1 = doSyncIO(1);
console.log('result1:', result1);
// The following block runs after result1 is set (which is what I want)
console.log('\n*** Starting second call to doSyncIO');
var result2 = doSyncIO(2);
console.log('result2:', result2);
在代码更改后 后,控制台日志出现在终端上,终端说服务器没有提供任何理由重新启动,这让我想知道我的代码中是否有错误!
2015-04-19更新:重启消息实际上可能不会指示问题,因为它仅在代码更改后显示。也许它只是标准的重启消息。然而,似乎重启消息应该在控制台记录之前发生。
请随意发表评论或分叉MeteorPad demo,看看是否还有其他内容。