Как создать сайтТермины Статьи Последние правки
20.04.2018
Unity3D

Статьи / JavaScript


baconjs

EventStream конструктор для своих потоков

Если не один из фабричных методов выше не применяется, вы можете конечно свернуть ваш собственный EventStream используя конструктор.

new EventStream(subscribe)

Параметр subscribe - это функция, которая принимает подписчика, который является функцией, которую получат События.

Например:

new Bacon.EventStream(function(subscriber) {
subscriber(new Bacon.Next("a value here"))
subscriber(new Bacon.Next(function() {
return "This one will be evaluated lazily"
}))
subscriber(new Bacon.Error("oops, an error"))
subscriber(new Bacon.End())
return function() { /* unsub functionality here, this one's a no-op */ }
})

Функция подписчик должна вернуть функцию. Давайте назовем эту функцию "отказаться от подписки"(отписчик). Возвращенная ф-я может быть использованая подписчиком для отписки и освобождения всех ресурсов, которые были зарезервированы функцией подписчиком.
Функция подписчик может вернуть Bacon.more или Bacon.noMore. Она также может вернуть undefined или что-нибудь ещё. Если она возвращает Bacon.noMore, подписчик должен быть очищен также как и в случае вызвова функции отписчика.

The EventStream constructor will wrap your subscribe function so that it will only be called when the first stream listener is added, and the unsubscibe function is called only after the last listener has been removed. The subscribe-unsubscribe cycle may of course be repeated indefinitely, so prepare for multiple calls to the subscribe function.


observable.map(f) Преобразовывает данные используя данную функцию, возращенную Новым Потоком События. Вместо функции вы также можете подставлять константу. Далее вы можете использовать свойство выделительную строку, наподобии ".keyCode" Так, что если f это строка начинающаяся с точки, элементы будут преобразованы в соответсвующее поле/функцию (в случае значения).

Например map(".keyCode") будет выдергивать значение keyCode из введенных значений. Если keyCode функция, результирующий поток будет содержать значения этой функции. The Function Construction rules below apply here.