Оператор потока Dart, эквивалент RxJS tap

Я делаю свои первые потоки в дротике, и я хотел бы напечатать некоторые из моих значений после наблюдаемого operators, прежде чем они дойдут до listen, так же, как tap в RxJS. Это возможно? Я тоже не могу найти его в RxDart.

Например:

final pulseStream = field.control.valueChanges
    .where((dynamic val) => (val as String).length < 20)
    .tap(print)
    .where((dynamic val) => (val as String).isNotEmpty)
    .tap(print)
    .where((dynamic val) => pulseController != null)
    .tap(print)
    .where((dynamic val) => !pulseController.isAnimating);

person BeniaminoBaggins    schedule 30.10.2020    source источник


Ответы (1)


Это оператор doX:

RxDart                             |  RxJS
------------------------
doOnData(print)                    | tap(console.log) or tap({ next: console.log })
doOnError((e, s) => print(e))      | tap({ error: console.log })
doOnDone(() => print('done'))      | tap({ complete: () => console.log('complete') })
person Petrus Nguyễn Thái Học    schedule 06.11.2020