- Bytes and Blobs by David Flanagan
- Conference Wifi Redux by Malte Ubi
- Sashimi - https://github.com/cramforce/Sashimi
- Run Your JS everywhere with Jellyfish by Adam Christian - http://jelly.io Project
- Fighting Crime and Kicking Apps with Batman.js by Nick Small
- Hello Jo by Dave Balmer - Project - http://joapp.com
// If the ES6 Promise is available, it uses that, else: | |
Rx.config.Promise = RSVP.Promise; | |
// To promise with success | |
Rx.Observable | |
.just(42) | |
.toPromise(/* Optional Promise ctor like RSVP.Promise */) | |
.then( | |
result => console.log('Result', result), | |
reason => console.log('Reason', reason)); |
/* | |
* Performs a exclusive waiting for the first to finish before subscribing to another observable. | |
* Observables that come in between subscriptions will be dropped on the floor. | |
* @returns {Observable} A exclusive observable with only the results that happen when subscribed. | |
*/ | |
observableProto.exclusive = function () { | |
var sources = this; | |
return new AnonymousObservable(function (observer) { | |
var hasCurrent = false, | |
isStopped = true, |
// what's a better way? | |
let fullName (first,last) = | |
match (first, last) with | |
"",_ | null,_ -> first | |
| _,null | _,"" -> last | |
| _ -> sprintf "%s.%s" first last |
a list of slides from nodeconf
you may want to take a look at the jsconf-gist too!
# --- settings --- | |
$feedUrlBase = "http://go.microsoft.com/fwlink/?LinkID=206669" | |
# the rest will be params when converting to funclet | |
$latest = $true | |
$overwrite = $false | |
$top = 5000 #use $top = $null to grab all | |
$destinationDirectory = join-path ([Environment]::GetFolderPath("MyDocuments")) "NuGetLocal" | |
# --- locals --- | |
$webClient = New-Object System.Net.WebClient |
/* | |
* Performs a exclusive waiting for the first to finish before subscribing to another observable. | |
* Observables that come in between subscriptions will be dropped on the floor. | |
* @returns {Observable} A exclusive observable with only the results that happen when subscribed. | |
*/ | |
observableProto.exclusive = function () { | |
var sources = this; | |
return new AnonymousObservable(function (observer) { | |
var hasCurrent = false, | |
isStopped = false, |
System.config({ | |
//use typescript for compilation | |
transpiler: 'typescript', | |
//typescript compiler options | |
typescriptOptions: { | |
emitDecoratorMetadata: true | |
}, | |
//map tells the System loader where to look for things | |
map: { | |
app: "./src", |
The Interactive Extensions for JavaScript (IxJS) is a set of methods on top of Iteratable
and AsyncIterable
serving as a standard library for both. Much like its push-based counterpart, the Interactive Extensions for JavaScript unifies the programming model around pull-based collections, either synchronous in the case of Iterable
or asynchronous with AsyncIterable
.
Starting in ES6, the Symbol.iterator
method was introduced to allow for iteration over collections such as Array
, Map
, Set
and even ``Generator. IxJS introduces a number of creation factories and operators that operate on these
Iterable` collections lazily. Each factory can be imported from `'ix/iterable'` and operators from `'ix/iterable/operators'` such as the following creating an iterable via `of` and then transforming each item using the `map` operator. You c
I know there is a lot of confusion around Observables
, Iterables
, AsyncIterables
and AsyncObservables
. Let's try to break this down and the reasons for each.
When it comes to collections, you have two ways of thinking about collections, push versus pull. With pull, the consumer is in control of when you get the items, but with push, you get the values when the producer is ready.