Итак, я играл с наблюдаемыми и теперь я застрял на этом. Допустим, у меня есть функция try (), которая перемещает прямоугольник (и другие фигуры), начиная с начала координат.
function trying() {
// Some other observables here doing other stuff
const rectangle = Observable.interval(10)
.takeUntil(Observable.interval(1000))
.map(() => rect.attr('x', someValue + Number(rect.attr('x'))))
rectangle.filter(() => Number(rect.attr('x')) <= 5)
.subscribe(() => console.log("Done"))
rectangle.filter(() => Number(rect.attr('x')) > 5)
// if more > 5, reset the whole function back
}
Мой вопрос в том, как сделать так, чтобы при срабатывании последнего фильтра; Число (rect.attr ('x'))> 5, оно сбрасывает всю функцию, как в, все фигуры возвращаются к исходной точке, а функция сбрасывает себя. Я не думаю, что могу использовать stopPropagation (), поскольку он не основан на событиях. Или, по крайней мере, как мне остановить запуск всех наблюдаемых при срабатывании последнего фильтра?