mirror of
https://github.com/Stone-Red-Code/website.git
synced 2026-09-06 23:43:45 +02:00
feat(resources) add util.promisify example
This commit is contained in:
@@ -6,6 +6,9 @@ title: Converting a callback
|
|||||||
recommended_reading:
|
recommended_reading:
|
||||||
- javascript/promises/intro
|
- javascript/promises/intro
|
||||||
- javascript/promises/async-await
|
- javascript/promises/async-await
|
||||||
|
external_resources:
|
||||||
|
- text: util.promisify(original)
|
||||||
|
href: "https://nodejs.org/api/util.html#util_util_promisify_original"
|
||||||
---
|
---
|
||||||
|
|
||||||
It's still pretty common to be forced to use an API that doesn't support promises. While a promise API is often preferred, it's not always available.
|
It's still pretty common to be forced to use an API that doesn't support promises. While a promise API is often preferred, it's not always available.
|
||||||
@@ -61,3 +64,19 @@ const weather = await getWeatherAsync("Los Angeles").catch((error) => {
|
|||||||
|
|
||||||
console.log(weather);
|
console.log(weather);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
In Node.js >v8.0.0 you can make use of the built-in `util` package which exposes a
|
||||||
|
[promisify](https://nodejs.org/api/util.html#util_util_promisify_original) method. This method helps us convert our original function to a promise-based function so that it returns the callback.
|
||||||
|
|
||||||
|
Using our example from earlier, we can write it as:
|
||||||
|
|
||||||
|
```js
|
||||||
|
const util = require("util")
|
||||||
|
|
||||||
|
const getWeatherAsync = util.promisify(getWeather)
|
||||||
|
|
||||||
|
const weather = await getWeatherAync("Los Angeles").catch(console.log)
|
||||||
|
console.log(weather)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note:** the `promisify` method adds a extra argument to the arguments you passed in. In this case we are calling the custom function with a single parameter of type `String`, which means the original function should also accept `(String, Function)`, `Function` being the callback `(error, result)`.
|
||||||
|
|||||||
Reference in New Issue
Block a user