1
我正在构建一个调用各种函数的shell脚本。当所有功能都完成后,我想关闭数据库连接并退出。我可以检查异步功能是否正在运行?
如果我能以某种方式获得一个事件,每次异步作业开始和结束我可以处理它,但那有可能吗?
我正在构建一个调用各种函数的shell脚本。当所有功能都完成后,我想关闭数据库连接并退出。我可以检查异步功能是否正在运行?
如果我能以某种方式获得一个事件,每次异步作业开始和结束我可以处理它,但那有可能吗?
我对你的问题,困惑 你可以用这种方式async模块:
var async = require('async');
var exec = require('child_process').exec;
async.parallel([
//Spawn slow proccesses
function(cb){ exec('cat *.js bad_file | wc -l', cb) },
function(cb){ exec('cat *.js bad_file2 | wc -l', cb) },
function(cb){ exec('cat *.js bad_file3 | wc -l', cb) }
],
function(err){
//If there is an error, the callback returns an error will be put in "err"
if(err != null)
console.log(err);
//All done, quit!
require("process").exit();
});
可以工作,但因为我的函数调用的API,更新数据库和这样的,我需要很多的这种逻辑和大量的回调。我到目前为止做了我自己的:https://gist.github.com/1274105 – webjay
我可以每隔5秒检查一次过程是否有效? – webjay
你试图完成的事情还是有点朦胧。我发现NodeJs的“延续传递风格”对于知道何时完成一个作业(如果使用正确的话有一系列调用)是完美的。你能解释一下你想做什么吗? – Nican