给定下面的函数,在typescript中,它返回一个可观察对象并接收一个可观察对象数组,我如何才能以一种更优雅的方式删除第一个if,它检查数组是否为空,以便在函数上调用subscribe()时完成可观察对象。
我实现了if。但它看起来很丑陋。
perform_scan_session_uploads(scan_operations: Array<Observable<any>>): Observable<any> {
// TODO: Check the errors in this inner observable.
if (scan_operations.length === 0) {
return of([true]);
}
return from(scan_operations).pipe(
concatAll(),
toArray(),
switchMap((result) => this.send_devices(result)),
switchMap((result) => this.check_device_errors(result)),
tap(() => {
console.log('Scan Errors: ', this.scan_errors);
}),
tap(() => this.clean_scan_session_data()),
);
}
发布于 2019-05-15 09:59:02
from([])
将立即完成可观察对象,因此后续运算符将不会执行。可以跳过长度检查
perform_scan_session_uploads(scan_operations: Array<Observable<any>>): Observable<any> {
return from(scan_operations).pipe(
concatAll(),
toArray(),
switchMap((result) => this.send_devices(result)),
switchMap((result) => this.check_device_errors(result)),
tap(() => {
console.log('Scan Errors: ', this.scan_errors);
}),
tap(() => this.clean_scan_session_data()),
);
}
https://stackoverflow.com/questions/56139881
复制相似问题