嗨,这是我对stackoverflow的第一个问题。 我写了一个函数,期望在nodejs中的soapClient调用会产生结果,但是它不等待调用返回,返回值为空。
我尝试对代码进行多次修改,但无法获得预期的结果。 我希望得到一些输出,但是它是空的。
注意URL是虚构的!
谢谢有人可以帮助我!
result <- data.frame() # empty frame
for (i in 1:135) {
if (airport$Scheduled[i] < airport$Performed[i])
result <- rbind(result, airport[i,])
}
答案 0 :(得分:0)
我建议您使用soap
软件包文档中的this example中的承诺。
您拥有的代码不是异步的,因此它不会等待操作完成。
它应该看起来像这样
import * as soap from "soap";
function getTokens(service: string): Promise<string> {
return new Promise<string>((resolve, reject) => {
function Call(err: any, client: soap.Client) {
client.loginCms({ in0: service }, function (
err: any,
result: any,
_rawResponse: string,
_soapHeader: any,
_rawRequest: string
) {
if (err) {
console.error(err);
reject(err)
} else {
Auth = result.loginCmsReturn;
resolve(Auth);
}
});
}
soap.createClient("wsdl_url", {
disableCache: true,
envelopeKey: "env"
}, Call, "endpoint_url");
});
};
getTokens("service").then((Auth) => {
console.log(Auth);
});
还请注意: