E.g.
var stream = new Bacon.Bus();
for(var i = 0; i < 4; i++) {
stream.plug(Bacon.later(3000, 'value');
}
Вместо цикла for у меня может быть обратный вызов для некоторых асинхронных вещей + другие значения также вводятся в поток.
E.g.
var stream = new Bacon.Bus();
for(var i = 0; i < 4; i++) {
stream.plug(Bacon.later(3000, 'value');
}
Вместо цикла for у меня может быть обратный вызов для некоторых асинхронных вещей + другие значения также вводятся в поток.
Нет необходимости отключать поток, пока он заканчивается (в потоке есть событие Bacon.end
). Bacon достаточно умен, чтобы обрабатывать конечные потоки без утечек памяти.
Если вы не можете завершить поток естественным образом, но знаете, что вас интересует только одно значение, вы можете создать один поток значений с помощью .take(1)
.
Использование bus.plug
для динамического добавления потоков в шину часто является признаком конструктивного недостатка вашего приложения. Невозможно дать точный совет, не видя вашего кода, но вы должны подумать о реорганизации своего кода, чтобы цепочка потоков создавалась при запуске, а динамическими были только значения. Вероятно, это будет связано с использованием flatMap
:)