Skip to content

Instantly share code, notes, and snippets.

@EduceHealth
Forked from robwormald/p.js
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save EduceHealth/f03ca6e0f2c12ff7dfd1 to your computer and use it in GitHub Desktop.
Save EduceHealth/f03ca6e0f2c12ff7dfd1 to your computer and use it in GitHub Desktop.
fluent p
//opt 1
SomeService.getStuff().then(function(stuff){
return SomeService.manipulateStuff(stuff);
}).then(function(manipulatedStuff){
//do stuff...
});
//opt 2
SomeService.getStuff().then(SomeService.manipulateStuff).then(function(manipulatedStuff){
//do stuff...
})
//fluent option
return SomeService.getStuff() //returns a promise for stuff, will resolve after manipulate and OtherStuff resolve.
.then(SomeService.manipulateStuff(implicitlyReturnedVariable)) //manipulates stuff, and returns it
.then(SomeService.doOtherStuff(implicitlyReturnedVariable)) // Does more things to stuff, and returns it
.service('SomeService', function(ApiService){
this.getStuff = function() {
return ApiService.get('stuff')
}
this.manipulateStuff = function(stuff) {
var i
for (i in stuff.things) {
stuff.things[i].index = i
}
var deferred = promise.defer()
deferred.resolve(stuff)
return deferred.promise
}
this.doOtherStuff = function(stuff) {
var i
for (i in stuff.things) {
stuff.things[i].doubleIndex = i+i
}
var deferred = promise.defer()
deferred.resolve(stuff)
return deferred.promise
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment