Last active
November 21, 2016 14:23
-
-
Save eschwartz/955a3f8925e24270550cb635dd49c12b to your computer and use it in GitHub Desktop.
Deferred
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function Deferred() { | |
var deferred = { | |
resolve: null, | |
reject: null | |
}; | |
deferred.promise = new Promise((resolve, reject) => { | |
// Save resolve/reject to deferred, for later usage. | |
deferred.resolve = resolve; | |
deferred.reject = reject; | |
}); | |
return deferred; | |
} |
Author
eschwartz
commented
Apr 8, 2016
Here's another one:
function AsyncSpy() {
const deferred = Deferred();
return _.extend(sinon.spy(() => deferred.promise), deferred);
}
const asyncSpy = AsyncSpy();
asyncSpy('foo')
.then(() => console.log('spy resolved');
assert(asyncSpy.calledWith('foo'))
asyncSpy.resolve();
// 'spy resolved'
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment