3

Я пытаюсь создать стек ответов AJAX в BaconJS. Это сначала обрабатывает их первым, но каждое событие «out» должно ждать ввода пользователя.Функциональный Javascript BaconJS, как я могу нажимать больше значений в поток событий?

Это где я в настоящее время: Live JSBin

var pages = Bacon.fromArray([1,2,3]) 
var next = $("#next").asEventStream('click').map(true); 

pages.flatMapConcat(asyncFunction).zip(next).log("responses") 

function asyncFunction(page) { 
    // Simulating something like an AJAX request 
    return Bacon.later(1000 + (Math.random() * 3000), "Page "+ page) 
} 

В настоящее время это синхронно выводит событие из pagesEventStream каждый раз, когда #next щёлкнули, что поведение я хочу.


Однако, я не могу понять, как нажать несколько значений к pagesEventStream. Я попытался заменить страницы EventStream на Bus и нажав такие значения (что не работает).

var pages = new Bacon.Bus() 
pages.push("value") 

Как я нажимаю больше значения к EventStream?

+0

Почему бы просто не использовать шаблон объекта параметра? – Fuser97381

+0

Можете ли вы привести пример того, как это поможет решить мою проблему? – Rollo

+0

Где значения, из которых вы хотите нажать? – Bergi

ответ

0

Я знаю, что это СТАРЫЙ пост, но автобус будет работать. Просто нажмите номер (вы имели массив чисел ранее) в него:

var pages = new Bacon.Bus(); 
// Bacon.fromArray([1,2,3]) 
var next = $("#next").asEventStream('click').map(true); 

pages.flatMapConcat(asyncFunction).zip(next).log("responses") 

function asyncFunction(page) { 
    // Simulating something like an AJAX request 
    return Bacon.later(1000 + (Math.random() * 3000), "Page "+ page) 
} 


pages.push(1); 
pages.push(2); 
pages.push(3); 

I cloned your jsbin and changed it to use bus

Как уже упоминалось ранее, вы могли течь источник значений страницы, используя нечто вроде fromEvent или fromBinder

 Смежные вопросы

  • Нет связанных вопросов^_^