Почему я не могу объединить потоки, используя xstream в cyclejs?
Я пытаюсь безуспешно объединить потоки в один и показать текст в h1.
Но не в состоянии заставить это работать:
это мой код:
function main(sources) {
// single streams
let letter$ = xs.of({text: 'abcd'});
let number$ = xs.of({text: '123456'});
//try to combine them into one
const combined$ =
xs.combine( letter$, number$ ).
map( ( [ letter, number ] ) => {
return { text: letter.text + ' ' + number.text };
});
//updates the virtual dom with the reponse
const vdom$ = combined$
.map(o => o.text)
.startWith('Loading...')
.map(text =>
div('.container', [
h1(text)
])
);
return {
DOM: vdom$
};
}
Это показывает ошибку, говоря:
index.js:6 TypeError: f is not a function
at invoke (core.js:36)
at CombineListener._n (core.js:72)
at Stream._n (core.js:886)
at FromArrayProducer._start (core.js:142)
at Stream._add (core.js:959)
at CombineProducer._start (core.js:118)
at Stream._add (core.js:959)
at MapOperator._start (core.js:681)
at Stream._add (core.js:959)
at StartWithOperator._start (core.js:786)
пытаясь понять почему, но пока не повезло.
1 ответ
Решение
Моя проблема заключалась в использовании зависимостей, указанных в package.json примеров в репозитории CycleJS.
Эти зависимости устарели:
https://github.com/cyclejs/cyclejs/blob/master/examples/http-search-github/package.json
"dependencies": {
"@cycle/xstream-run": "1.1.0",
"@cycle/dom": "10.0.0-rc20",
"@cycle/http": "9.0.0-rc3",
"xstream": "2.4.x"
}
и зависимости на сегодняшний день:
"@cycle/dom": "^12.1.0",
"@cycle/http": "^10.1.0",
"@cycle/xstream-run": "^3.0.4",
"xstream": "^5.3.6"
эмпирическое правило для проверки последних стабильных зависимостей.
спасибо @bloodyKnuckles и всем в CycleJS.