DoneJS StealJS jQuery ++ FuncUnit DocumentJS
3.0.0
2.3.27

 

  • Github
  • Twitter
  • Chat
  • Forum
  • Guides
  • Core
  • Ecosystem
    • can-construct-super
    • can-define-stream
    • can-fixture
    • can-fixture-socket
    • can-jquery
    • can-stache-converters
    • can-stream
      • Methods
        • toStream
        • toStreamFromCompute
        • toStreamFromEvent
        • toStreamFromProperty
    • can-vdom
    • can-view-import
    • can-zone
    • steal-stache
  • Infrastructure
  • Legacy
  • Bitovi
    • Bitovi.com
    • Blog
    • Consulting
    • Training
    • Open Source
  • Chat
  • Forum
  • Star
  • Follow @canjs
  • CanJS
  • /
  • Ecosystem
  • /
  • can-stream
  • /
  • toStream
  • / On this page
    • toStream

      function

      Provides a shorthand for creating a stream from observable objects, properties and events.

      • source

      canStream.toStream( compute )

      Creates a stream from a can-compute compute. This stream gets updated whenever the compute value changes.

      var compute = require('can-compute');
      var canStream = require('can-stream');
      
      var c1 = compute(0);
      
      var resultCompute = canStream.toStream(c1);
      
      resultCompute.onValue(function (val) {
        console.log(val);
      });
      
      c1(1);
      

      Parameters

      1. compute {can-compute}:

        A compute whose value will be the stream values.

      Returns

      {Stream}:

      A Kefir stream.

      canStream.toStream( obs, "eventName" )

      Creates an event stream with the event objects dispatched on obs for eventName. This is a shorthand for toStreamFromEvent.

      var DefineList = require('can-define/list/list');
      var canStream = require('can-stream');
      
      var hobbies = new DefineList(["js","kayaking"]);
      
      var changeCount = canStream.toStream(obs, "length").scan(function(prev){
          return prev + 1;
      }, 0);
      changeCount.onValue(function(event) {
          console.log(event);
      });
      
      hobbies.push("bball")
      //-> console.logs {type: "add", args: [2,["bball"]]}
      hobbies.shift()
      //-> console.logs {type: "remove", args: [0,["js"]]}
      

      Parameters

      1. obs {Observable}:

        An observable object like a can-define/map/map. Promises can work too.

      2. eventName {String}:

        An observable event name.

      Returns

      {String}:

      A Kefir stream make up of the event objects dispatched on obs.

      canStream.toStream( obs, ".propName" )

      Creates a stream from an observable property value. This is a shorthand for toStreamFromProperty.

      var canStream = require('can-stream');
      var DefineMap = require("can-define/map/map");
      
      var person = new DefineMap({
          first: "Justin",
          last: "Meyer"
      });
      
      var first = canStream.toStream(person, '.first'),
          last = canStream.toStream(person, '.last');
      
      var fullName = Kefir.combine(first, last, function(first, last){
          return first + last;
      });
      
      fullName.onValue(function(newVal){
          console.log(newVal);
      });
      
      map.first = "Payal"
      //-> console.logs "Payal Meyer"
      

      Create a stream based on a event on an observable property.

      Parameters

      1. obs {Observable}:

        An observable object like a can-define/map/map. Promises can work too.

      2. propName {String}:

        A property name. Multiple property names can be provided like ".foo.bar.car"

      Returns

      {String}:

      A Kefir stream of values at the specified propName.

      canStream.toStream( obs, ".propName eventName" )

      Creates a stream from an observable property value. This is a shorthand for the second signature of toStreamFromEvent.

      var canStream = require('can-stream');
      var DefineMap = require("can-define/map/map");
      var DefineList = require("can-define/list/list");
      
      var me = new DefineMap({
          todos: ["mow lawn"]
      });
      
      var addStream = canStream.toStream(me, ".todos add");
      
      addStream.onValue(function(event){
          console.log(event);
      });
      
      map.todos.push("do dishes");
      //-> console.logs {type: "add", args: [1,["do dishes"]]}
      

      Create a stream based on a event on an observable property.

      Parameters

      1. obs {Observable}:

        An observable object like a can-define/map/map. Promises can work too.

      2. propName {String}:

        A property name. Multiple property names can be provided like ".foo.bar.car"

      3. eventName {String}:

        An observable event name.

      Returns

      {String}:

      A Kefir stream of the eventName event objects dispatched on the objects specified by propName.

      CanJS is part of DoneJS. Created and maintained by the core DoneJS team and Bitovi. Currently 3.0.0.