У меня есть двумерный массив BehaviorSubject<number>s
. Для целей отладки я хочу записать значения в отформатированном виде, как только все ячейки массива испускают значение. Поэтому я написал следующее:Observable.zip не вызывает subscribe.next, если источники заданы как массив
Observable.zip(universe.map(row => Observable.zip(row)))
.takeUntil(stopper)
.subscribe(u =>
console.log(`[\n\t[${u.map(r => r.toString()).join("],\n\t[")}]\n]`))
Ничего не написано. А также это не работает:
Observable.zip(universe[0])
.takeUntil(stopper)
.subscribe(u => console.log(`1[${u.toString()}]`))
Но эти следующие работы (массив имеет 5 столбцов):
Observable.zip(universe[0][0], universe[0][1], universe[0][2], universe[0][3], universe[0][4])
.takeUntil(stopper)
.subscribe(u => console.log(`2[${u.toString()}]`))
Observable.zip(Observable.zip(Observable.zip(Observable.zip(universe[0][0], universe[0][1]), universe[0][2]), universe[0][3]), universe[0][4])
.takeUntil(stopper)
.subscribe(u => console.log(`3[${u.toString()}]`))
Также я рассмотрел .zipAll (оператор), но нет ни одного документа, об этом ,
Это может быть ошибка в коде Observable.zip(), поскольку она показывает ArrayLike<BehaviorSubject<number>>
как возможный тип аргумента в помощи кода.
Так есть ли другой способ получить эту функциональность? Как я могу получить значения массива, записанные после того, как все значения будут переназначены, не зная фактических измерений, конечно?
Благодарим вас за приглашение. Определение для univer следующее: 'let universe: BehaviorSubject [] []'. В отношении неправильного аргумента нет компиляции или ошибок времени выполнения. Я попытаюсь использовать apply() или call(), которые когда-либо удовлетворяют мои потребности. –
koducu
Я нашел это в zip.d.ts: 'export declare function zipStatic (array: ObservableInput []): Observable ' –
koducu
@koducu На самом деле вы должны беспокоиться только о 'zipProto', как вы можете здесь увидеть https://github.com/ReactiveX/rxjs/blob/master/src/add/operator/zip.ts и здесь https://github.com/ReactiveX/rxjs/blob/master/src/operator/zip.ts # L13 – martin