gpt4 book ai didi

Node.js promise 请求返回

转载 作者:搜寻专家 更新时间:2023-10-31 22:55:38 25 4
gpt4 key购买 nike

我正在使用 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());

最佳答案

Promise 是一个对象,用作 future 值的占位符。您的 parse() 函数返回该 promise 对象。通过将 .then() 处理程序附加到 promise 中,您可以获得 promise 中的 future 值(value),如下所示:

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);
});

这是异步代码,因此从 promise 中获取值的唯一方法是通过 .then() 处理程序。

修改列表:

  1. 在返回的 promise 对象上添加 .then() 处理程序以获得最终结果。
  2. 在返回的 promise 对象上添加 .catch() 处理程序以处理错误。
  3. request() 回调中添加对 err 值的错误检查。
  4. JSON.parse() 周围添加 try/catch,因为如果 JSON 无效,它会抛出

关于Node.js promise 请求返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41412512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com