繁体   English   中英

无法读取未定义的承诺错误的属性“解析器”

[英]Cannot read property 'Parser' of undefined promise error

我正在通过 API 解析一些数据,我的解析代码如下,

  parseXML(data) {
    return new Promise((resolve) => {
      var k: string | number,
        arr = [],
        parser = new xml2js.Parser({
          trim: true,
          explicitArray: true,
        });
      parser.parseString(data, function (err, result) {
        var obj = result.ApiResponse;
        for (k in obj.CommandResponse) {
          var item = obj.CommandResponse[k];
          arr.push({
            info: item.DomainCheckResult[0],
          });
        }
        resolve(arr);
      });
    });
  }

这是我的解析器代码,但我仍然收到控制台错误
core.js:4197 ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'Parser' of undefined TypeError: Cannot read property 'Parser' of undefined

所以我的问题是代码有什么问题? 当我返回一个承诺时,我还能做什么? 我正在返回一个新的承诺,然后我调用了解析器,那么我怎么会出错呢? 谁能帮我?

嗯,应该有一个 ',' 而不是 ';'。 经过长时间的调整,我终于能够解决问题。

  parseXML(data) {
    return new Promise((resolve) => {
      var k: string | number,
        arr = [],
        parser = new xml2js.Parser({
          trim: true,
          explicitArray: true,
        });
      // var parser = new xml2js.Parser({ explicitArray: false });
      parser.parseString(data, function (err, result) {
        var obj = result.ApiResponse;
        for (k in obj.CommandResponse) {
          var item = obj.CommandResponse[k];
          arr.push({
            Name: item.DomainCheckResult[0]['$']['Domain'],
            Available: item.DomainCheckResult[0]['$']['Available'],
            PremiumRegistrationPrice:
              item.DomainCheckResult[0]['$']['PremiumRegistrationPrice'],
          });
        }     console.log(JSON.stringify(item.DomainCheckResult));
      });
    });
  }

顺便说一句,感谢所有试图提供帮助的人。 哦,最重要的另一件事我在导入 xml2js 时也犯了一个错误,我也不得不改变它。
 import xml2js from 'xml2js';

暂无
暂无

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

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