Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does Promisify do?

I was following Stephen Grinder tutorial where he started using Promisify.

For that he gave very vague explanation saying that redis needs a callback function and he finds that very untidy + redis does not support promises in NodeJS

And afterwards he did something like this

     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)

For some reason I found the explanation to be vague, Can someone please explain this in the most human way? like what does he mean and what we are doing?

like image 882
iRohitBhatia Avatar asked Aug 25 '26 23:08

iRohitBhatia


1 Answers

Promisify is used when you want to convert a callback function into a promise based function. Nowadays, is used promises because let the developers to write more structured code. With callbacks you have a problem called pyramid of doom (http://callbackhell.com/). Where each function is called inside the other and the code starts to grow horizontally. With promises you can use then to call another function. Let me show you.

Callback Example

 a (function (data1) {
  b (function (data2) {
    c (function (data3) {
      d (function (data4) {
        e (function (data5) {
          f (function (data6) {
            // The Egyptians 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))

If you want I can post a better example but I think that this will help you

like image 60
Pedro Silva Avatar answered Aug 28 '26 12:08

Pedro Silva



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!