如何将值从SOAP函数返回到流星方法?

萨穆维尔·巴兰(Samuvel Balan)

我内部有一个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。我该如何解决?

萨穆维尔·巴兰(Samuvel Balan)
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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章