Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
traits + promises
JavaScript
Tag: v0.0.6

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
test
README.md
package.json

README.md

promised-traits

Library that combines goodness of traits and superpowers of promises to allow writing pretty linear code for doing asynchronous magic.

var PromisedTrait = require('promised-traits').PromisedTrait
,   q = require('q')

var TExample = PromisedTrait(
{ firstName: PromisedTrait.required
, fullName: function fullName(lastName) {
    return this.firstName + ' ' + lastName
  }
, greet: function greet(name) {
    return 'Hello ' + name
  }
})

var deferred = q.defer()
,   example = TExample.create(deferred.promise)

var name = example.fullName('Bar')  // returns promise
var message = example.greet(name)   // returns promise

// Log message once promise is resolved.
q.when(message, function(message) { console.log(message) })
// Resolving the promise we used to create our object from.
deferred.resolve({ firstName: 'Foo' })
// > Hello Foo Bar

Install

npm install promised-traits
Something went wrong with that request. Please try again.