过滤器内的Promise回调

时间:2019-06-11 20:02:48

标签: javascript typescript

我正在尝试过滤一组自定义类数据,并且在过滤器中我有条件要检查。

如果(item.name)我做某事,如果(!item.name)我做其他事。还有其他事情涉及到承诺。

我的问题是,过滤在promise之前完成,所以我的promise在过滤完成后返回,导致数据丢失。我该如何解决?

    let filteredItems = this.filterItems(items);

    filterItems(items: Item[]): Item[] {
      let filteredItems = items.filter(x => {
        let test = this.filterItemHelper(x);
        // console.log('test', x.name, test);
        return test;
      });
      return (filteredItems);
  }

  filterItemHelper(item: Item) {
      if (item.name) {
        return item.name.toLowerCase().includes(this.searchText.toLowerCase());
      } else if (!item.name) {
        this.service.myPromiseCall(item, 'itemStore', 'itemIdField').then((data) => {
        if (data) {
          let y = data['itemName'].toLowerCase().includes(this.searchText.toLowerCase());
          console.log(y)
          return y;
        }
      });
      }
  }

0 个答案:

没有答案