私はbluebird promiseを持っています。このチェックが真であれば、それは継続することができます。ただし、このチェックが偽の場合は、非同期プロセスspawnが必要です。続行する前に完了するまで待つ必要があります。ブルーバードの約束の中でオプションのプロセス操作を待っています
私は次のようなものを持っている:
var foo = getPromise();
foo.spread(function (error, stdout, stdin) {
if (error) {
// ok, foo needs to hold on until this child exits
var child = spawn(fixerror);
child
.on('error', function (e) {
//I need to error out here
})
.on('close', function (e) {
//I need to have foo continue here
});
} else {
return "bar";
}
});
は、どのように私はそれをやって行くのでしょうか?
あなたの '.spread()'ハンドラは、最初の引数として 'error'を持つ関数を取るのはなぜですか?それはあまり有望ではないようです。通常、エラーは約束を拒否し、解決することはありません。 – jfriend00
@ jfriend00:他の2つのパラメータ名が与えられていると、私には 'stderrString'のように聞こえます。外部プロセスが実行され、すべてうまくいったが、何かを標準エラー出力に書き込んだ。 – Bergi
可能な複製[既存のコールバックAPIを約束に変換するにはどうすればいいですか?](http://stackoverflow.com/q/22519784/1048572) - そこには何もない場合は、あなたの質問を[編集]してくださいどのようにあなたの試行がうまくいかなかったか。 – Bergi