Javascript-异步等待并获取-返回值,而不是诺言?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript-异步等待并获取-返回值,而不是诺言?相关的知识,希望对你有一定的参考价值。

我正在尝试使用异步等待并使用提取API提取数据

我的问题是,我只是不太了解我如何真正从服务器获得答案,而不是诺言的状态。我在控制台中得到以下内容

Promise <pending>
-------------------------------
locale: "en"

但是我希望服务器响应是“ locale:en”。

我的代码:

const locale = getLocale();
console.log(locale)
return;

async function getLocale() 
    let response = await fetch('/get-language', 
        headers: 
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        ,
        method: 'GET',
    ).then(response => 
        if (response.ok) 
            return response.json()
        
        return Promise.reject(Error('error'))
    ).catch(error => 
        return Promise.reject(Error(error.message))
    )

    return response

我要归档的目标是,返回此“ locale:en”响应,并将其存储在我的代码示例开头的“ locale” const中。

我在做什么错?我想我不是在等待什么,但是我真的不确定。

KR

我正在尝试使用异步等待并使用访存API来访存数据。我的问题是,我只是不太了解我是如何真正从服务器获得答案的,而不是诺言的状态。 ...

答案

要获得Promise所解析的值而不是Promise本身,请使用.then()await。请注意,两者都需要回调或异步上下文,因为根本不可能将此异步结果带到同步上下文(例如文件的顶级)。

以上是关于Javascript-异步等待并获取-返回值,而不是诺言?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 异步等待和获取 - 返回值,而不是承诺?

承诺等待得到解决而不返回

NodeJS,从异步等待中获取返回值

无法从异步函数获取返回值,等待未按预期工作(Vue API 服务)

使用异步而不等待

获取JavaScript异步函数的返回值