我正在使用promis模块从请求模块返回我的json数据,但是每次运行它时,它都会为我提供此信息。
Promise { _45: 0, _81: 0, _65: null, _54: null }
我无法正常工作,有人知道这个问题吗?这是我的代码:
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());
许诺是充当未来价值的占位符的对象。您的parse()函数返回该Promise对象。通过将.then()处理程序附加到promise,您可以在promise中获得未来的价值:
parse()
.then()
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); });
这是异步代码,因此,仅能通过.then()处理程序来获得承诺的价值。
修改清单:
.catch()
err
request()
JSON.parse()