【问题标题】:How to know the nodejs process is finished?如何知道nodejs进程完成了?
【发布时间】:2012-09-15 19:32:32
【问题描述】:

您好,有一些nodejs代码如下:

console.log("Start", new Date().getTime()); 
var fs = require('fs');
for (var i = 1; i < 10; i++) {
    fs.readFile("file1.zip",function(err, data) {
      if(err)
        console.log("read error: ", err);
      else {
            fs.writeFile(__dirname + "/file2.zip", data , function(err) {
                if(err) {
                    console.log("write error: ", err);
                }           
            }); 
      }
    });
};
console.log("Finished", new Date().getTime());

我想知道所有工作完成后的开始和结束时间,但是第二个日志似乎为时过早

【问题讨论】:

    标签: node.js


    【解决方案1】:

    你可能想试试console.log("Finished", new Date().getTime());,而不是:

    process.on('exit', function () {
      console.log("Finished", new Date().getTime());
    });
    

    【讨论】:

      【解决方案2】:

      由于节点的异步行为,第二个日志函数被调用得太早。你必须把它放在最后一个回调中:

      console.log("Start", new Date().getTime());
      var fs = require('fs');
      for (var i = 1; i < 10; i++) {
        fs.readFile("file1.zip",function(err, data) {
          if(err) {
            console.log("read error: ", err);
          } else {
            fs.writeFile(__dirname + "/file2.zip", data , function(err) {
              if(err) {
                console.log("write error: ", err);
              }
              // Put it here
              console.log("Finished", new Date().getTime());
            }); 
          }
        });
      };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多