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