update tutorial sistema para operativo node funciona framework documentación diccionario como actualizar node.js asynchronous async-await ecmascript-next

node.js - tutorial - ¿Por qué esperar no está funcionando para el módulo de solicitud de nodo?



sistema operativo para node js (3)

Prueba con el siguiente paquete NPM

node-fetch

var url = "http://www.google.com"; try { const response = await fetch(url); const json = await response.json(); return {message:json.message,status:json.type}; } catch(error) { console.log(error); }

Espero que funcione.

Soy nuevo en nodejs. No veo la respuesta en el ejemplo 1, pero veo en el ejemplo 2. ¿Por qué? Espera trabajos para mí en otros lugares, usando babel.

Ex 1

let res = await request(url) console.log(res); console.log(res.body);

Ex 2

request(url, function (error, res, body) { if (!error && response.statusCode == 200) { console.log(body) } });

Esperar trabajos en otros lugares, estoy usando babel y los módulos necesarios para las funciones de es6 y es7. Por ejemplo, aguarda trabajos en llamada de squelize, he validado. Pero no funciona para solicitud de llamada. ¿Por qué?


Solo debes await en algo que devuelve una Promesa. Definitivamente recomendaría leer Promesas antes de comenzar a trabajar con async y await . Probablemente pueda hacer que este ejemplo funcione al crear su propia función de envoltura alrededor de la request para hacer que devuelva una promesa, como:

function doRequest(url) { return new Promise(function (resolve, reject) { request(url, function (error, res, body) { if (!error && res.statusCode == 200) { resolve(body); } else { reject(error); } }); }); } // Usage: async function main() { let res = await doRequest(url); console.log(res); } main();

Edición: de forma alternativa, puede considerar el uso de request-promise lugar del módulo de solicitud regular.


ES6

Uso: Donde la request es require(''./await-request'')

const init = async () => { try { const result = await request({ uri: ''statdirectory/exchange?json'', baseUrl: ''https://bank.gov.ua/NBUStatService/v1/'', json: true }) console.log(result) } catch (err) { console.error(err) } }

Código:

// request-service.js const request = require(''request'') module.exports = async (value) => new Promise((resolve, reject) => { request(value, (error, response, data) => { if(error) reject(error) else resolve(data) }) })