I am looking for a way to create deferred object which will be resolved outside the current scope. I like deferred objects and as I see Promise.defer()
in Chrome 38 returns the deferred object.
But in latest Firefox 34 Promise.defer
is undefined as well in Safari 8.0.
So I can't use Promise.defer
everywhere now. What about future status? Will it be implemented in other browsers or will be removed as deprecated?
According to the MDN article on Deferred, the
.defer
method is obsolete. If you look at this bug issue, it says thatPromise.defer
is non-standard, so it's not likely to return.They offer an example of how to rewrite
Promise.defer
code, to instead usenew Promise
.Promise.defer
new Promise
There are several advantages to the new format, including cleaner code, and improved throw safety (if the code in the promise init function throws synchronously the promise will reject).
Although I doubt this is a good idea, but technically you can implement custom deferred object based on Promises. For example: