0

C++のものと構文的に類似したpromiseとfutureを提供するjavascriptライブラリはありますか。基本的に私たちはそれらをwebworkersで使用したいのですが、コールバックインターフェイスは必要ありません。Webworkerがfutureをブロックし、UIスレッドがfutureの値を設定したときに続行するようにします。私はすべての可能な約束と将来のライブラリを見てきましたが、すべてがコールバックを期待しています、私たちのコードはすでに混乱していて、それをさらに複雑にしたくありません。

4

1 に答える 1

0

http://code.google.com/p/google-caja/source/browse/trunk/src/com/google/caja/ses-promise.js

SES/ES5 の promise の実装。Q をグローバル スコープにエクスポートします。

ほとんどは Tyler Close による ref_send 実装から取られ、関数の約束をサポートするための商標テーブルが追加されています。

ところで、Mark Miller は、JavaScript の並行性モデルの成文化と、言語の将来のバージョンに向けて、シンタックス シュガーを使用した最終的な送信セマンティクスの追加に取り組んでいます。http://wiki.ecmascript.org/doku.php?id=strawman:concurrencyから

  1. 現実: JavaScript の事実上の同時実行モデルを法定モデルとして体系化し、形式化する。
  2. Promises:(Q(p).post(), Q(p).get())リモート オブジェクトなど、同期的に到達できない可能性があるオブジェクトの非同期要求を作成する方法。 (Q(p).when())コールバックをファースト クラス値として登録する機能を具体化することで、ローカル イベント ループ プログラミングの負担を軽減します。 (Q.async, yield:)promise の浅い継続の暗黙的な登録用。
  3. 構文糖。接頭辞「!」演算子: 最終的なリクエストを即時のリクエストのように見せるための、「.」の最終的な類似物。
  4. (Q.makePromise())promise ハンドラーがローカルの promise 操作をリモートメッセージに変換できるようにする promise 拡張メカニズム。トランスポートの独立性: リモート オブジェクト メッセージングを対称抽象化レイヤーとして使用し、上記のさまざまなトランスポートとサーバー間の TCP および UDP トランスポートの間の煩わしい違いを隠します。
  5. (Vat())それを生成したイベント ループと同時に実行される新しいイベント ループを生成するためのイベント ループ生成メカニズム。ワーカーの独立性: ブラウザーでのワーカーのスポーンまたはサーバーでのプロセスのスポーンに関する抽象レイヤーとして Vat API を使用します。
  6. (Vat.evalLater(), where())JavaScript 自体をモバイル コードとして使用するため、イベント ループは新しい動作を他のイベント ループに安全に挿入できます。Async-PGAS: The Asynchronous Partitioned Global Address Space Model の表現力に分散型アナログを提供します。
于 2012-08-07T04:32:39.043 に答える