ブルーバードコルーチンのエラーをどのように処理すると思いますか?bluebirdjsコルーチンエラー処理(ブラウザ)
私はノードでcoを使っていましたが、これは素晴らしいキャッチ関数を持っています。
co(function*() {
return new Promise(function(resolve, reject) {
// whatever stuff
});
}).catch(function(err) {console.error(error.stack)});
しかし、ブラウザ/クライアント側のブルーバードでは、全体の悪夢です。キャッチ機能はなく、私が戻ってきているエラーは全くありません。匿名でも未処理でも、全脳になります...
私はbluebirdjsのウェブサイトをチェックしています。数か月前にエラーを処理するさらに、誰かが次のように書きました。
try、catch、および最後にコルーチンを使用する利点を強調するよりよい例があります。
http://bluebirdjs.com/docs/api/promise.coroutine.html
私は意味:キャッチは最終的にコルーチンにネストされ、してみてください?私は、私は2つのルーチンのためのそのアドバイスに従っていることを認めているが、私はちょうど正しいとは思わない。約束とコルーチンの全体のポイントは、コールバックが作成した醜い過度のネスティングを取り除くことです。ああ、またか?
このBluebirdjsエラーがどのようにしてより良い解決策に変わる可能性があるのか誰かが知っていれば、私は本当に感謝しています。
「Promise.coroutine' == 'co.wrap'」のようなエラーを処理できます。両方とも 'catch'メソッドを持つ約束を返す関数を返します。 – Bergi
@Bergi愚かな私、あなたは正しいです。私はこの * Promise.coroutine(/ *発電機のもの* /)。キャッチ(ハンドラ)* 代わりの * Promise.coroutine(/ *発電機のスタッフ* /)のようなinvokation前にキャッチを設定しようとしました。() .catch(ハンドラー)* – LongHike