是否可以等待过滤器功能完成?
我在Angular 6中有这个可观察的地方,我在那里做一个过滤器。过滤器需要花费几秒钟的时间,所以完成一些功能会很不错,因为过滤器已经完成。这可能吗?
flSearch(input) {
return this._plantCache.pipe( // Use downloaded JSON file
map(
(res: Array<Object>) => {
return res.filter(item => {
return item['Fl'].indexOf(fl) !== -1;
});
},
error => {
this.loadingHide();
return error;
})
);
}
其他文件
this._data.flSearch(data.value.searchPlant)
.subscribe(items => {
console.log(items);
});
答案 0 :(得分:0)
您可以使函数返回可观察的https://angular.io/guide/observables
import {Observable} from 'rxjs/Observable';
flSearch(input) {
return new Observable ((observer) => {
observer.next(this._plantCache.pipe( // Use downloaded JSON file
map((res: Array<Object>) => {
return res.filter(item => {
return item['Fl'].indexOf(fl) !== -1;
});
}, error => {
this.loadingHide();
return error;
})
));
});
}
编辑:observer.next()
是您用来返回值的内容,observer.complete()
关闭可观察对象,以使其完成工作后不会耗尽内存。您将必须导入rxjs才能访问可观察的实例。