Обрабатывать rxjs из (Array <observables>), когда массив пуст - PullRequest
0 голосов
/ 15 мая 2019

Учитывая следующую функцию, в машинописном тексте, которая возвращает наблюдаемую и получает массив наблюдаемых, как я могу, более изящным образом, удалить первое условие if, которое проверяет, является ли массив пустым, в порядке для наблюдаемойзавершить, когда вызывается подписка () на функцию.

Я реализовал 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()),
        );

    }

1 Ответ

1 голос
/ 15 мая 2019

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()),
            );

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...