WebクライアントとWakandaサーバー間のすべての対話にhttpRequestHandlersを使用しています。私はサーバーからクライアントへのWakandaコネクターを使用していません。wakanda async ssjsを作成する方法
他のサーバーへのssjs呼び出しが応答を待つときに、どのようにWeb UIに非同期応答(約束)を提供しますか?
WebクライアントとWakandaサーバー間のすべての対話にhttpRequestHandlersを使用しています。私はサーバーからクライアントへのWakandaコネクターを使用していません。wakanda async ssjsを作成する方法
他のサーバーへのssjs呼び出しが応答を待つときに、どのようにWeb UIに非同期応答(約束)を提供しますか?
プロミスはクライアント側の関心事です。 httpRequestHandlerを使用して(すでに行っているように)結果を返す以外に、Wakanda Serverから何もする必要はありません。リクエストクライアント側をどのように扱うかはあなたの選択です。
サーバー側のコードが第三者に要求しているという事実は、ブラウザの非同期性(約束またはコールバック)にどのようにアプローチするかに影響しません。あなたのWakandaサーバーコードは同期し、応答を待ちます。次に、第三者へのリクエストを含むサーバー側のリクエストが完了すると、ブラウザに応答します。
Wakandaサーバーがマルチスレッド化されているため、要求の同期コードは他の要求が実行されるのをブロックしません。
こちらがお役に立てば幸いです。
docs 約束をサポートするには、Bluebirdのようなライブラリを使用する必要があり、コールバックでネイティブコールを約束して、約束を返す関数を取得する必要があります。
HTTPリクエストハンドラで非同期サーバー側を呼び出す方法も簡単です。 main関数でreturnを使用しないでくださいが、あなたのコールバックにはresponse.body(および/またはresponse.statusCode、headers ...)を設定してください。それは次のようになります。
function myHandler(request, response){
callAsync(myParam, {onSuccess: function(event){
response.body = event.result;
});
}
私は、アプリケーションのフロント部分に使用した約束は、特別な機能を提供するバックエンドから必要がないことを、以前の回答に同意します。
WakandaのREST APIを使用している場合は、既にPromise APIを公開しているWakanda JavaScript Clientを使用できます。
詳細は、quick-start wiki pageをご覧ください。