rest - Proper request with async/await in Node.JS -
in program make async call function api module:
var info = await api.myrequest(value); module code:
var request = require("request") module.exports.myrequest = async function myrequest(value) { var options = { uri: "http://some_url", method: "get", qs: { // query string ?key=value&... key : value }, json: true } try { var result = await request(options); return result; } catch (err) { console.error(err); } } execution returns immediately, result , therefore info contains request object , request body - info.body key=value&..., not required response body.
what i'm doing wrong? how fix? proper request usage async, or works correctly promises mentioned here: why await not working node request module? following article mentioned possible: mastering async await in node.js.
you need use request-promise module, not request module.
await works on functions return promise, not on functions return request object , expect use callbacks or event listeners know when things done.
the request-promise module supports same features request module, asynchronous functions in return promises can use either .then() or await them rather callbacks request module expects.
so, install request-promise module , change this:
var request = require("request"); to this:
var request = require("request-promise");
Comments
Post a Comment