类型'void |上不存在Angular2 Promise'array' {}'

时间:2016-10-23 07:21:01

标签: angular promise pouchdb

我确信这与许多其他“属性不存在类型”问题有关,但说实话,我已经尝试了他们的修复,但这对我不起作用......

我正在使用ionic2 / angular2和pouchDB构建应用程序。

pouchdb promise呼叫在提供商服务中,如下所示

loadUserDocuments() {

    return new Promise(resolve => {

      this.db.query('some view', {
        include_docs: true
      }).then((result) => {

        this.myList = [];
        result.rows.map((row) => {
          if (some condition)
            this.myList.push(row);
        });

        resolve(this.myList);

      });

    }).catch((error) => {
      console.log("loadUserDocuments : Error : " + error);
    });
  }

当我从我的组件调用loadUserDocuments时,如下所示....它可以工作!!

updateHives() {    
   this.ds.loadUserDocuments().then((myList) => {
      this.listToUI = myList;    
   });
}

UI得到更新,没有问题。

当我尝试遍历'myList'以将它们分成单独的列表时,问题就开始了......下面是抛出错误的代码

  updateHives() {
    this.ds.loadUserDocuments().then((myList) => {

      myList.rows.map((row) => {

        if (condition 1){
          this.listOne.push(row);
        } else if (condition 2) {
          this.listTwo.push(row);
        }

      });
    });
  }

'rows'对象出现错误,即'void | {}'类型中不存在“属性'行'

我甚至尝试在代码的工作中添加另一个then子句,但同样,我的本地对象也变得无法迭代。

我试过读Nolan Lawson的https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html,但我迷路了。

请帮忙。

谢谢, 埃尔维斯。

0 个答案:

没有答案