我内部有一个Meteor方法正在调用soap函数。
流星正在从肥皂客户端获得响应之前执行所有语句。
所以我得到的结果未定义。
我想答应在执行方法中的其他语句之前先执行肥皂。
createSoapConnection(){
var Soap = require('soap');
var url = 'https://xxxxxx/index.php/api/v2_soap/?wsdl';
var args = {username: 'xxxxxx', apiKey: 'xxxxxx'};
let client = Soap.createClient(url, function(err, client){
let result = client.login(args, function(err, result) {
let sessionId = result.loginReturn.$value;
console.log(sessionId);
return {
conn: client,
sessionId: sessionId
};
});
});
}
我正在用这种流星方法来称呼这个方法。
addsoapmessage(){
let a = Meteor.call("createSoapConnection");
console.log(a);
}
结果在控制台中变得不确定。之后,将打印会话ID。我该如何解决?
meteor add zardak:soap
将此软件包安装在应用程序文件夹的根目录中。然后尝试使用以下代码。
var url = 'http://example.com/wsdl?wsdl';
var args = {name: 'value'};
try {
var client = Soap.createClient(url);
var result = client.MyFunction(args);
return result; // or send this result to the function where ever you want.
}
catch (err) {
if(err.error === 'soap-creation') {
console.log('SOAP Client creation failed');
}
else if (err.error === 'soap-method') {
console.log('SOAP Method call failed');
}
}
您可以使用这些函数进行任何soap api调用。有关更多详细信息,请访问:https : //atmospherejs.com/zardak/soap
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句