gpt4 book ai didi

javascript - Promisify 是做什么的?

转载 作者:可可西里 更新时间:2023-11-01 11:08:54 25 4
gpt4 key购买 nike

我正在关注 Stephen Grinder 教程,他开始使用 Promisify。

为此,他给出了非常模糊的解释,说 redis 需要一个回调函数,他发现 very untidy + redis 不支持 NodeJS 中的 promises

然后他做了这样的事

     const redis = require('redis')
const redisURL = 'redis://127.0.0.1:6379';
const redisClient = redis.createClient(redisURL);
const util = require('util')

client.get = util.promisify(client.get)

const cachedBlog = await client.get(req.user.id)

出于某种原因,我发现解释含糊不清,有人可以用最人性化的方式解释一下吗?比如他是什么意思,我们在做什么?

最佳答案

当您想将回调函数转换为基于 promise 的函数时,使用 Promisify。如今,使用 promises 是因为让开发人员编写更结构化的代码。对于回调,您会遇到一个名为厄运金字塔 (http://callbackhell.com/) 的问题。每个函数都在另一个函数内部调用,代码开始水平增长。通过 promise ,您可以使用 then 调用另一个函数。让我告诉你。

Callback Example

 a (function (data1) {
b (function (data2) {
c (function (data3) {
d (function (data4) {
e (function (data5) {
f (function (data6) {
// The Egyptions would be jealous of this pyramid!
})
}
})
})
})
})

Promise example

a(data1)
.then(return b(data2))
.then(return c(data3))
.then(return d(data4))
.then(return e(data5))

如果您愿意,我可以发布一个更好的示例,但我认为这会对您有所帮助

关于javascript - Promisify 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53239200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com