Javascript 如何将 xml2js 放入函数中

标签 javascript node.js xml2js

我正在尝试导出一个将 xml 解析为 json 对象的函数。

export const parse = (body) => {
  const parser = new xml2js.Parser({explicitArray: false, trim: true});
  parser.parseString(body, (err, result) => {
    if (err) return err;
    parser.parseString(result['soapenv:Envelope']['soapenv:Body']['ns1:searchResponse'].searchReturn._, (err, result) => {
      if (err) return err;
      console.log(result);
      return result;
    });
  });
}

我遇到的问题是该函数返回未定义,但是,它设法向 console.log 记录正确的结果。

最佳答案

由于您的函数是异步的,您可以将其转换为 promise。

export const parse = (body) => {

return new Promise((resolve, reject) => {

  const parser = new xml2js.Parser({explicitArray: false, trim: true});
  parser.parseString(body, (err, result) => {
    if (err) return reject(err);
    parser.parseString(result['soapenv:Envelope']['soapenv:Body']['ns1:searchResponse'].searchReturn._, (err, result) => {
      if (err) return reject(err);
      resolve(result);
    });
  });
  }


})

你可以这样使用它..

const result = await parse(<somebody>)

关于Javascript 如何将 xml2js 放入函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49180116/

相关文章:

javascript - 将变量传递到 mongo 更新中?

javascript - 将状态项设置回初始状态而不改变

javascript - 如何访问对象内部的 `categoryIds` 字段/键,其中包含 mongodb 的 `ObjectId(s)` 数组作为值?

javascript - yarn 和 npm 的主要区别是什么?

json - 如何访问 xml2js 结果属性

javascript - 如何将 xml2js 响应传递给 node.js 路由中的变量?

javascript - Node.js xml2js 解析器未定义

javascript - 在 NextJS 应用程序上使用 npm run dev 时出现意外 token

javascript - 如何将 onClick 事件设置为延迟加载的图形或图像元素

node.js - 使用 Firestore 分页