繁体   English   中英

node.js:使用await消耗诺言

[英]node.js: consume promises using await

我有以下消耗肥皂网络服务的代码:

var soap = require('soap');
var url = 'http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL';
var args = { ubiNum: '1234' };

soap.createClientAsync(url).then((client) => {
  return client.NumberToWordsAsync(args);
}).then((result) => {
  console.log(result[0].NumberToWordsResult)
});

我正在尝试使用await重写它,这是我的尝试:

var soap = require('soap');
var url = 'http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL';
var args = { ubiNum: '1234' };

var client = await soap.createClientAsync(url);
var result = await client.NumberToWordsAsync(args);
console.log(result[0].NumberToWordsResult)

但是我收到以下错误:

var client = await soap.createClientAsync(url);
             ^^^^^
SyntaxError: await is only valid in async function

我想念什么?

顺便说一句:如果有人想玩,这里是一个副本https : //repl.it/@opensas/BasicNodeSoapClientWithPromises

await仅在异步函数内起作用。 除了异步函数,您不能放置await语句。 因此,您可以重写您的代码,例如

(async function() {
  var soap = require('soap');
  var url = 'http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL';
  var args = { ubiNum: '1234' };

  var client = await soap.createClientAsync(url);
  var result = await client.NumberToWordsAsync(args);
  console.log(result[0].NumberToWordsResult);
})();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM