Jakeタスクは、長時間実行されるシステムコマンドを実行します。別のタスクは、開始する前に最初のタスクが完全に終了することに依存します。'child_process'の'exec'関数は、システムコマンドを非同期で実行し、最初のタスクが完了する前に2番目のタスクを開始できるようにします。
2番目のタスクが開始する前に最初のタスクの長時間実行されているシステムコマンドが確実に終了するようにJakefileを作成する最もクリーンな方法は何ですか?
最初のタスクの最後にダミーループでポーリングを使用することを考えましたが、これは悪臭がします。もっと良い方法があるに違いないようです。私はこのSOの質問を見たことがありますが、それは私の質問に完全には対応していません。
var exec = require('child_process').exec;
desc('first task');
task('first', [], function(params) {
exec('long running system command');
});
desc('second task');
task('second', ['first'], function(params) {
// do something dependent on the completion of 'first' task
});