将request.post转换为async / await

时间:2018-02-05 17:09:54

标签: express ecmascript-6 async-await

我已经转换了很多request.get来跟随这个新的async / await模式。有没有办法对request.post执行相同的操作。这是我的示例代码,并希望任何输入

 try {
request({ url: url, method: 'POST', body: parameters, json: true}, function (error, response, body) {
  if (!error) {
    return res.status(200).send(response.body);
  } else {
      return res.status(500).send(response.body);
  }
});  
} catch(err) {
    return res.status(500).send(err);
  }

1 个答案:

答案 0 :(得分:1)

您可以将请求方法包装在Promise中,然后包含在异步函数中,如下所示:

let request = require('request');

async function asyncRequest(options) {
  return new Promise((resolve, reject) => {
    request(options, (error, response, body) => resolve({ error, response, body }));
  });
}

async function google() {
  let response = await asyncRequest('http://www.google.com');
  console.log(response.response.statusCode);
}

google();

根据request的{​​{3}},您可以使用request-promise模块来避免自己包裹承诺