0

次の Javascript イベント ハンドラーがあります。

 function eventHandler(e) {
        //doSomething 1...

        asyncFunctionWhichReturnPromise(data).then(function (data) {
              //doSomething 2...
              e.data = {
                  Id: data.Id,
                  Type: "Type" 
              };
        });
        //doSomething 3...
 }

したがって、コード「//doSomething 3...」を実行すると「//doSomething 2...」の前に実行されますが、これはイベント ハンドラー関数であるため、「//doSomething 2...」でデータを準備する必要があります。次のイベントが発生する前のコード ブロック。q.js (Kris Kowal の promises ライブラリ) を使用するにはどうすればよいですか?

重要な追加情報: 実際には、次のステップで使用される e.data の初期化があるため、eventHandler から離れる前にブロック //doSomething 2... を実行する必要があります - 剣道 ui アップロードはサーバーにデータをアップロードします.

4

1 に答える 1