NodeJsの現在のSOAPクライアントを使用して、HTTP要求をサーバに送信するたびにSOAPサービス関数を呼び出します。NodeJSのSOAPクライアントを同期化して使用する
問題は、SOAPサービスコールが終了する前に要求が返され、データが返されないという問題です。
ここでの問題は、ロジックが非同期ですが、同期させる必要があることです。
私を適切なソリューションに案内してください。
function soap_get_items(req,res){
var resp = [];
var soap = require('soap');
var url = 'http://example.com/example.wsd?singleWsdl';
var args = {name:"N.Hillary"};
soap.createClient(url, function(err, client) {
client.exampleSoapFunction(args, function(err, result) {
resp = result;
});
});
json_resp = JSON.stringify(resp);
res.end(json_resp);
}
Node.jsは1スレッドです。同期式石けんの応答を待つ間、世界は止まるでしょう。 –
答えを得る場所で 'res.end(result)'を呼ぶだけです。 –
あなたのコードは*非同期*です。つまり、コールバック内の 'result' *に関するすべてのコードを実行する必要があります。 –