如何将承诺的返回值分配给变量?

问题描述

我正在使用 Node.js 和 Webpack 来构建一个 Evaluate News NLP 项目。
我使用 dotenv 包来隐藏我的 API 密钥,我可以从服务器 index.js 访问 process.env。但是,我无法从客户端 somefunction.js 访问它。
我试图从服务器 index.js 获取变量并将其分配给一个变量,但它返回一个承诺。然后我搜索并使用另一个异步函数将返回值分配给我的变量,但徒劳。

我想知道如何将我的 fetch 的返回值分配给一个可以在另一个 fetch 调用中使用的变量?!

服务器 index.js 中的示例代码

app.get('/api',(req,res) =>{
  res.send(data)
})

代码示例(somefunction.js):

const fetchApi = async () => {
  const res = await fetch('/api')
  try{
    const data = await res.json();
    return data.apiKey
  }catch(e){
    console.log("error",e)
  }
}
let apiKey = (async()=>{
  try {
    apiKey = await fetchApi();
  } catch (e) {
    console.log("error",e)
  }
})();

然后我尝试在同一个 js 文件的另一个函数中使用这个 apiKey 变量:

const urlToFetch = `${baseURL}${apiKey}&url=${url}${lang}`

async () => {
    const res = await fetch(urlToFetch)
    try{
      const data  = await res.json()

        document.getElementById('model').innerHTML = data.model
        document.getElementById('score_tag').innerHTML = data.score_tag
        document.getElementById('agreement').innerHTML = data.agreement
        document.getElementById('subjectivity').innerHTML = data.subjectivity
        document.getElementById('confidence').innerHTML = data.confidence
        document.getElementById('irony').innerHTML = data.irony
        console.log(apiKey)
        console.log(res)

    }catch (error) {
      console.log("error",error)
    }
  }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)