DoneJS StealJS jQuery++ FuncUnit DocumentJS
3.14.1
5.0.0 4.3.0 2.3.35
  • About
  • Guides
  • API Docs
  • Community
  • Contributing
  • Bitovi
    • Bitovi.com
    • Blog
    • Design
    • Development
    • Training
    • Open Source
    • About
    • Contact Us
  • About
  • Guides
  • API Docs
    • Observables
      • can-compute
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-stream
      • can-define-stream-kefir
      • can-event
      • can-event/async/async
      • can-event/batch/batch
      • can-event/lifecycle/lifecycle
      • can-kefir
      • can-list
      • can-map
      • can-map-backup
      • can-map-define
      • can-observation
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
        • Methods
          • toCompute
          • toStream
    • Data Modeling
      • can-connect
      • can-connect-cloneable
      • can-connect-feathers
      • can-connect-ndjson
      • can-connect-signalr
      • can-fixture
      • can-fixture-socket
      • can-ndjson-stream
      • can-set
    • Views
      • can-component
      • can-ejs
      • can-element
      • can-react-component
      • can-stache
      • can-stache/helpers/route
      • can-stache-bindings
      • can-stache-converters
      • can-view-autorender
      • can-view-callbacks
      • can-view-href
      • can-view-import
      • can-view-live
      • can-view-model
      • can-view-nodelist
      • can-view-parser
      • can-view-scope
      • can-view-target
      • react-view-model
      • react-view-model/component
      • steal-stache
    • Routing
      • can-deparam
      • can-param
      • can-route
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-globals
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-string
      • can-string-to-any
      • can-util
      • can-zone
      • can-zone-storage
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-control
      • can-dom-events
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-jquery
    • Data Validation
      • can-define-validate-validatejs
      • can-validate
      • can-validate-interface
      • can-validate-legacy
      • can-validate-validatejs
    • Typed Data
      • can-cid
      • can-construct
      • can-construct-super
      • can-namespace
      • can-reflect
      • can-reflect-promise
      • can-types
    • Polyfills
      • can-symbol
      • can-vdom
    • Core
    • Infrastructure
      • can-global
      • can-test-helpers
    • Ecosystem
    • Legacy
  • Community
  • Contributing
  • GitHub
  • Twitter
  • Chat
  • Forum
  • News
Bitovi

toStream

  • Edit on GitHub

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

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-kefir');

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 [can-stream-kefir.toStreamFromEvent].

var DefineList = require('can-define/list/list');
var canStream = require('can-stream-kefir');

var hobbies = new DefineList(["js","kayaking"]);

var changeCount = canStream.toStream(hobbies, "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 [can-stream-kefir.toStreamFromProperty].

var canStream = require('can-stream-kefir');
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 [can-stream-kefir.toStreamFromEvent].

var canStream = require('can-stream-kefir');
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.14.1.

On this page

Get help

  • Chat with us
  • File an issue
  • Ask questions
  • Read latest news