首页 > 解决方案 > 如何访问待处理的承诺中的数据?

问题描述

我希望在承诺中返回一个数组,但它一直说承诺待定。它返回 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)

标签: javascriptarrayspromise

解决方案


这个漂亮的等待/异步实现怎么样?

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


推荐阅读