Получение готовых уведомлений от наблюдаемых объектов, созданных с помощью переключателя
В приведенном ниже примереfoo
получает данные отbar
пока игнорирует когдаbar
завершается.foo
завершено, когдаbaz
завершает, а это не то поведение, которое я желаю.
var baz = Rx.Observable.interval( 50 ).take( 10 );
var foo = baz
.select(function (x) {
var bar = Rx.Observable.range(x, 3);
return bar;
})
.switch();
Есть ли вариантswitch
или технику, которую я мог бы использовать, чтобы вновь созданныйfoo
наблюдаемые имеют то же время жизни, что иbar
? То есть хотелось быfoo
завершить в случае, еслиbar
завершается.
Решение:
var baz = Rx.Observable.interval( 50 ).take( 10 );
var foo = baz
.select(function (x) {
var bar = Rx.Observable.range(x, 3).materialize()
return bar;
})
.switch()
.dematerialize();