javascript - 如何访问待处理的承诺中的数据?
问题描述
我希望在承诺中返回一个数组,但它一直说承诺待定。它返回 promise: 已完成和 promise value: 数组。我已经阅读了有关 Promise 的文档和线程,并尝试将其用作函数。我曾尝试使用异步等待,但似乎没有任何效果。我在某处读到您可以将其存储在全局变量中,就是这样。或者你在使用 React 时不能将它存储在全局变量中,因为我使用的是 React。有人可以指出我正确的方向吗?
这是我的代码:
const currentSymbol = fetch(`https://finnhub.io/api/v1/stock/symbol?exchange=US&token=${key}`)
.then((res) => {
return res.json();
}).then((results) => {
return results.map(result => {
return result
})
})
console.log(currentSymbol)
解决方案
这个漂亮的等待/异步实现怎么样?
function currentSymbol(){
return new Promise(function(resolve){
fetch(`https://finnhub.io/api/v1/stock/symbol?exchange=US&token=${key}`)
.then((res) => {
resolve( res.json());
})
});
}
然后得到结果:
let result = await currentSymbol();
问题是您正在记录Promise
一个. awaitable
要执行 Promise 并获得其实际结果,您需要使用Promise 对象本身的.then()
or 或implementationawait
推荐阅读
- python - 正则表达式匹配 SINXX11-111111
- php - 重复的列名 [错误号:1060] - PHP Codeigniter
- javascript - Javascript测验控制流程
- postgresql - 如何设置 Mojo::Pg::Transaction 的事务隔离级别?
- love2d - 要显示的表格/图像
- c# - 通过使用任务加速处理改进
- java - javax.mail.MessagingException:连接失败;如何解决这个问题?
- python - UnboundLocalError:分配前引用的局部变量“选择”
- ruby-on-rails - 您可以将solidus 沙箱部署到Heroku 吗?在“上线”之前需要解决哪些安全问题
- python - 第一次条件为真后停止嵌套的for循环