|
|
|
|
|
by Prefinem
2971 days ago
|
|
> A Deferred object is returned by the obsolete Promise.defer() method to provide a new promise along with methods to change its state. > Starting from Gecko 30, this object is obsolete and should not be used anymore. Use the new Promise() constructor instead (or use the above backwards/forwards compatible Deferred function given below). For example, the equivalent of Seems like it's obsolete. [0] If you want to write async code, use async / await. const run = async () => {
const response = await new Promise((resolve, reject) => methodOne(data, (e, res) => e ? reject(e) : resolve(res)));
};
If you spend enough time with fat arrow, it's as easy to read as `function` is. On top of that, IMO it looks cleaner. It also allows you to do scope binding in a different manor which in React is much better.This: <a onClick={this.onClickEvent.bind(this)}>Click Me</a>
becomes this: <a onClick={(event) => this.onClickEvent(event)}>Click Me</a>
[0] https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_... |
|
Then you can write your own Deferred implementation. I didn't even know it was implemented in browsers.
How to read this? run is a constant that equals the result of calling function async() thas maps to something in curly brackets? This is confusing.> If you want to write async code, use async / await.
That is a good idea, but it has nothing to do with arrow functions.
> It also allows you to do scope binding in a different manor
`this` binding in JS in classic functions is broken by design, so yes, that is the advantage of arrow functions.