次の 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 アップロードはサーバーにデータをアップロードします.