Node.js promesa de solicitud de devolución

Estoy usando el módulo promis para devolver mis datos json desde el módulo de solicitud, pero cada vez que lo ejecuto, me da esto.

Promise { _45: 0, _81: 0, _65: null, _54: null } 

No puedo hacerlo funcionar, ¿alguien sabe el problema? Aquí está mi código:

 function parse(){ return new Promise(function(json){ request('https://bitskins.com/api/v1/get_account_balance/?api_key='+api+'&code='+code, function (error, response, body) { json(JSON.parse(body).data.available_balance); }); }); } console.log(parse()); 

Una promesa es un objeto que sirve como un marcador de posición para un valor futuro. Su función parse() devuelve ese objeto de promesa. Obtendrá el valor futuro de esa promesa al adjuntar un controlador .then() a la promesa como esta:

 function parse(){ return new Promise(function(resolve, reject){ request('https://bitskins.com/api/v1/get_account_balance/?api_key='+api+'&code='+code, function (error, response, body) { // in addition to parsing the value, deal with possible errors if (err) return reject(err); try { // JSON.parse() can throw an exception if not valid JSON resolve(JSON.parse(body).data.available_balance); } catch(e) { reject(e); } }); }); } parse().then(function(val) { console.log(val); }).catch(function(err) { console.err(err); }); 

Este es un código asíncrono, por lo que la ÚNICA manera de obtener el valor de la promesa es a través del controlador .then() .

Lista de modificaciones:

  1. Agregue el controlador .then() en el objeto de promesa devuelto para obtener el resultado final.
  2. Agregue el controlador .catch() en el objeto de promesa devuelto para manejar los errores.
  3. Agregue la comprobación de errores en el valor err en la callback de request()
  4. Agregue try / catch alrededor de JSON.parse() ya que puede lanzar si JSON no es válido

Utilizar petición-promesa :

 var rp = require('request-promise'); rp('http://www.google.com') .then(function (response) { // resolved }) .catch(function (err) { // rejected });