7

他のオブジェクトで呼び出される関数があり、アプリケーションがロードされると、パラメーターを取得し、関数はすべてのオブジェクトでの呼び出しを待機してから実行する必要があるため、promise パターンを使用して、すべてのオブジェクトがロードされていることを確認できますが、わかりませんオブジェクトの数と、読み込みのタイムアウトを設定したくないjquery.アルゴリズムなどの特定のテクノロジーについては話しません。

疑似コード:

      function loadWidget(id){
        list.push(id);
       //here I should ensure all Widget is loaded


          }

他のアプリケーションで私が呼び出す

    app.loadWidget.add(widget1.id);
    .
    .
    .      
    app.loadWidget.add(widget2.id);
4

1 に答える 1

13

既製のソリューションが必要なく、代わりにすべてのアルゴリズムを自分で実装したい場合は、ウィキペディアの記事で参照されている論文を読んでください: Futures and promises and the spec for Promises/A and Promises/A+ .

Domenic Denicola によるYou're Missing the Point of Promisesを読み、 Promises/A+ の Compliances テストを参照してください。

一方、車輪を再発明する価値がないと判断した場合 (教育のためでない限り - その場合は、できるだけ多くの車輪を再発明する必要があります) 、軽量のRSVP.jsを見てください。非同期コードを整理するためのツールを提供するライブラリ。RSVP.js は、たとえばEmber.jsで使用されます。

于 2013-03-06T11:55:20.527 に答える