0

私の仮定では、WinJS.Application.queueイベントは、グローバルコンテキスト(チェックポイント、アンロード、アクティブ化、ロードなど)でのアプリケーションイベントのキューイングに適用されますが、非同期呼び出しとは関係ありません。WinJS.Promise.joinをイベントハンドラーsetPromise()内で使用して、続行する前にすべての非同期呼び出しが完了していることを確認できます。任意のコンテキストまたは説明をいただければ幸いです。

ありがとう!

4

1 に答える 1

2

それらは 2 つの完全に異なるものです。

WinJS.Application.queueEvent は、WinJS.Application.addEventHandler 関数で登録されたハンドラーにイベントを発生させるために使用されます。時間の経過とともに複数のイベントが発生する可能性があり、ハンドラーが複数回呼び出される可能性があります。

WinJS.Promise.join は、渡したすべての promise が完了すると完了する新しい promise オブジェクトを作成するために使用されます。まずプロミスが必要であり、プロミスが完了すると (成功または失敗)、完了したままになります。ハンドラーは一度だけ実行されます。

どちらも非同期処理用ですが、異なるスタイルの非同期用です。Promise は、いったん終了して何かを実行し、後で戻ってくるものに使用されますが、実行されるのは 1 回だけです。イベントは、アプリの存続期間中に複数回発生する可能性があります。

于 2012-10-30T23:16:32.107 に答える