Skip to content

.withLatestFrom(later(1, "foo"), …) depends on JS runtime #803

@semmel

Description

@semmel

B.later(1, "foo") is like B.later(0, "foo") but only when running in Node – as different from when running in browsers.

demo code:

const B = require('baconjs'),
   concat = (a, b) => a + b, 
   s = B.once('foo').withLatestFrom(B.later(1, 'bar'), concat);
// let it run
s.onValue(console.log)

For a nice surprise execute that in Node, e.g. from a project shell where baconjs is installed:

node -e "const B = require('baconjs'), concat = (a, b) => a + b, unsub = B.once('foo').withLatestFrom(B.later(1, 'bar'), concat).onValue(console.log)"
# -> foobar

whereas in browser dev tools there is no event output :

import('./node_modules/baconjs/dist/Bacon.mjs').then(m => { globalThis.B = m; });
var concat = (a, b) => a + b;
var unsub = B.once("foo")
.withLatestFrom(B.later(1, "bar"), concat)
.onValue(s => { console.log(`sampled: "${s}"`); })

I guess I have to treat synchronicity or atomic updates with a grain of salt. 🤔

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions