首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当数组为空时,处理来自(Array<observables>)的rxjs

当数组为空时,处理来自(Array<observables>)的rxjs
EN

Stack Overflow用户
提问于 2019-05-15 07:26:00
回答 1查看 132关注 0票数 0

给定下面的函数,在typescript中,它返回一个可观察对象并接收一个可观察对象数组,我如何才能以一种更优雅的方式删除第一个if,它检查数组是否为空,以便在函数上调用subscribe()时完成可观察对象。

我实现了if。但它看起来很丑陋。

代码语言:javascript
复制
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()),
        );

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-15 09:59:02

from([])将立即完成可观察对象,因此后续运算符将不会执行。可以跳过长度检查

代码语言:javascript
复制
 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()),
            );

        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56139881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档