Skip to content

Instantly share code, notes, and snippets.

@Ezku
Forked from anonymous/Thunk.coffee
Last active January 4, 2016 13:58
Show Gist options
  • Save Ezku/8630928 to your computer and use it in GitHub Desktop.
Save Ezku/8630928 to your computer and use it in GitHub Desktop.
class Thunk extends Promise
evaluated: false
constructor: (resolver) ->
deferred = Promise.defer()
@eval = ->
new Promise(resolver).then(
deferred.resolve
deferred.reject
)
super (resolve, reject) ->
deferred.promise.then(resolve, reject)
_addCallbacks: ->
if not @evaluated
@evaluated = true
@eval()
super arguments...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment