我正在尝试过滤一组自定义类数据,并且在过滤器中我有条件要检查。
如果(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;
}
});
}
}