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

toCompute

  • Edit on GitHub

Creates a compute from a stream generator function.

canStream.toCompute( makeStream(setStream), [context] )

This returns a compute that when bound takes on the value of the stream returned by makeStream. makeStream is called with:

  • its this as the context, and
  • setStream which is a stream of values set on the returned compute (ex: compute(5)).

This is used to create computes from streams.

var count = Kefir.sequentially(1000, [1, 2]);

var myCompute = canStream.toCompute(function(setStream){
    return setStream.merge(count);
});

// listen to the compute for it to have a value
myCompute.on("change", function(){})

myCompute("A")

// immediate value
myCompute() //-> "A"

// 1000ms later
myCompute() //-> 1

// 1000ms later
myCompute() //-> 2

Parameters

  1. makeStream {function(setStream)}:

    A stream generator function. This function takes the stream of set values, and typically other streams and manipulates them into the final returned output stream. The output stream's values are used as the value of the returned compute.

    The setStream is the stream of values set on the returned compute. In the following example, setStream will emit the values 1 and then 2.

    var returnedCompute = canStream.toCompute(function(setStream){
     return setStream;
    });
    returnedCompute(1);
    returnedCompute(2);
    
  2. context {Object}:

    An optional context which will be the this of makeStream.

Returns

{compute(newVal)}:

A compute that when read will return the value of the stream returned by setStream. When the compute is written to, it will update setStream.

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