Я успешно вызвал последовательность методов мыльного веб-сервиса, используя nodejs / javascript, но с помощью обратных вызовов ... сейчас это выглядит примерно так:
soap.createClient(wsdlUrl, function (err, soapClient) {
console.log("soap.createClient();");
if (err) {
console.log("error", err);
}
soapClient.method1(soaprequest1, function (err, result, raw, headers) {
if (err) {
console.log("Security_Authenticate error", err);
}
soapClient.method2(soaprequest2, function (err, result, raw, headers) {
if (err) {
console.log("Air_MultiAvailability error", err);
}
//etc...
});
});
});
Я пытаюсь получить что-то более чистое с помощью Promise или async, похожего на это (на примере, приведенном в документации здесь https://www.npmjs.com/package/soap):
var soap = require('soap');
soap.createClientAsync(wsdlURL)
.then((client) => {
return client.method1(soaprequest1);
})
.then((response) => {
return client.method2(soaprequest2);
});//... etc
Моя проблема в том, что в последнем примере мыльный клиент больше не доступен после первого вызова и обычно возвращает ошибку «не определено» ...
существует ли «чистый» способ переноса объекта через этот вид цепочки для использования / доступа при последующих вызовах?