ウィキペディアは、コルーチンをジェネレーターで実装できることを示唆しています。これは、 ES6 ジェネレーターを使用してノードファイバーを実装できることを意味しますか?
1144 次
3 に答える
1
wait.for と呼ばれるファイバーのラッパーをコーディングしました: https://github.com/luciotato/waitfor
次に、ジェネレーターを使用して同じ機能をコーディングしました: https://github.com/luciotato/waitfor-ES6
両方を比較して、ジェネレーターがノードファイバーをどのように置き換えることができるかを確認できますが、構文は異なります。
同じ API を持つことを不可能にする 1 つの重要な違いは、ES6 のジェネレータ本体が特別な構文で実装されていることです。function*
一方、node-fibers では任意の js 関数を使用できます。
于 2014-05-01T04:42:35.640 に答える
0
非常に小さなサブセットを移植しようとしましたが、失敗しました。重要なのは、ノードFiber.yield()
ファイバーはファイバーの呼び出しスタックのずっと上まで実行を停止するのに対し、ジェネレーターyield
は即時関数のみを停止することでした。同様に動作するシステム ( Task.jsなど) を実装できる場合もありますが、API 互換の実装は不可能のようです。
于 2013-08-17T21:41:10.017 に答える