Meteor wrapAsync可以工作,但在完成后重新启动服务器

时间:2015-04-18 21:40:34

标签: asynchronous meteor synchronous

我正在尝试学习如何使用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,看看是否还有其他内容。

0 个答案:

没有答案