Using the async keyword ensures that a function will always return a Promise. Previously this was achieved by wrapping the function body in return Promise.resolve().then(…) which has a very slight async penalty and can make stack traces harder to read.
Definition of done
For all known asynchronous functions:
- add
async keyword
- undo wrapping in
Promise.resolve().then(…) if applicable
- undo any explicit result wrapping
return Promise.resolve(…) ⮕ return …
- throw errors instead of returning rejections
return Promise.reject(new Error(…)) ⮕ throw new Error(…)
- optional: use
await & try/catch in the function body instead of traditional promise handling
Task list
Tools/libs
Platforms (only the Node.js part)
Using the
asynckeyword ensures that a function will always return a Promise. Previously this was achieved by wrapping the function body inreturn Promise.resolve().then(…)which has a very slight async penalty and can make stack traces harder to read.Definition of done
For all known asynchronous functions:
asynckeywordPromise.resolve().then(…)if applicablereturn Promise.resolve(…)⮕return …return Promise.reject(new Error(…))⮕throw new Error(…)await&try/catchin the function body instead of traditional promise handlingTask list
Tools/libs
Platforms (only the Node.js part)