Skip to content

Instantly share code, notes, and snippets.

@francescoagati
Created July 5, 2011 12:12
Show Gist options
  • Save francescoagati/1064727 to your computer and use it in GitHub Desktop.
Save francescoagati/1064727 to your computer and use it in GitHub Desktop.
jQuery:deferred an example of promise chained deferred with pipe and done. Coffeescript and javascript
promise= (fn) -> df= $.Deferred(fn).promise()
df=promise (df) -> setTimeout( (-> df.resolve(1000)), 1 )
df.pipe (x) ->
promise (df) -> setTimeout( (-> df.resolve(x+1000)), 2 )
.pipe (x) ->
promise (df) -> setTimeout( (-> df.resolve(x+1000)), 2 )
.pipe (x) ->
promise (df) -> setTimeout( (-> df.resolve(x+1000)), 2 )
.pipe (x) ->
console.log x
.done (x) -> console.log "ufo"
var df, promise;
promise = function(fn) {
var df;
return df = $.Deferred(fn).promise();
};
df = promise(function(df) {
return setTimeout((function() {
return df.resolve(1000);
}), 1);
});
df.pipe(function(x) {
return promise(function(df) {
return setTimeout((function() {
return df.resolve(x + 1000);
}), 2);
});
}).pipe(function(x) {
return promise(function(df) {
return setTimeout((function() {
return df.resolve(x + 1000);
}), 2);
});
}).pipe(function(x) {
return promise(function(df) {
return setTimeout((function() {
return df.resolve(x + 1000);
}), 2);
});
}).pipe(function(x) {
return console.log(x);
}).done(function(x) {
return console.log("ufo");
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment