Advertisement
maprangsoft

แก้ปัญหา callback plugin

Jun 16th, 2022
810
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //* ===== ปัญหา callback plugin =====
  2. const request = require("request");
  3.  
  4. request(
  5.   {
  6.     url: `my-url-api`,
  7.     form: req.body,
  8.     method: "POST",
  9.   },
  10.   function (err, httpResponse, body) {
  11.     if (err) return reject(err);
  12.  
  13.     console.log("body :>> ", body);
  14.   }
  15. );
  16.  
  17. //* ===== วิธีแก้ 1 ใช้ promise =====
  18. const request = require("request");
  19.  
  20. const promiseRequest = () => {
  21.   return new Promise((resolve, reject) => {
  22.     request.post(
  23.       {
  24.         url: `my-url-api`,
  25.         form: req.body,
  26.       },
  27.       function (err, httpResponse, body) {
  28.         if (err) return reject(err);
  29.         resolve(JSON.parse(body));
  30.       }
  31.     );
  32.   });
  33. };
  34.  
  35. const response = await promiseRequest();
  36.  
  37. //* ===== วิธีแก้ 2 ใช้ แปลง callback ให้เป็น promise =====
  38.  
  39. const { promisify } = require("util");
  40.  
  41. const asyncRequest = promisify(request);
  42.  
  43. const { body } = await asyncRequest({
  44.   url: `my-url-api`,
  45.   form: req.body,
  46.   method: "POST",
  47. });
  48.  
  49. const response = JSON.parse(body);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement