Почему я не могу объединить потоки, используя 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.

Другие вопросы по тегам