[Cycle.js] Customizing effects from the main function

How can we show one string on the DOM, and a completely different string on Console log? This lesson shows how we can make our main function return multiple Observables, each one targeted at a different type of effect.

// Logic (functional)
function main() {
  return {
    DOM: Rx.Observable.timer(0, 1000).map( i => `timer is ${i}`),
    Log: Rx.Observable.timer(0, 1000).map(i => 2*i )
  };
i}


function DOMEffect(text$) {
  text$.subscribe(text => {
    const container = document.querySelector('#app');
    container.textContent = text;
  });
}

function consoleLogEffect(msg$) {
  msg$.subscribe(msg => console.log(msg));
}

const sinks = main();
DOMEffect(sinks.DOM);
consoleLogEffect(sinks.Log);
  
原文地址:https://www.cnblogs.com/Answer1215/p/5176692.html