首页 > 解决方案 > javascript如何将异步等待函数初始化为变量

问题描述

我是 javascript async await 函数的初学者。我试图在我的后端发出一个异步请求,我希望它在我的变量中初始化,但是当我尝试记录我的变量时,它给了我一个承诺而不是一个值。当我也试图等待时。它给了我错误。

这是我所做的:

const getActivityContestApi = async () => {
      try {
        const response = await fetch(
          `${getDjangoApiHost()}/api/events/event_activity_contests/`, {
          method: 'GET',
          headers: { 'Content-Type': 'application/json' },          
         });
              
         const data = await response.json();               
         return data;
       } catch(error) {
          console.log(error)
      } 
    }  

上面的函数是我的异步函数,我希望将它存储在这样的变量中:

const test_variable =  getActivityContestApi();
console.log(test_variable);

这段代码给了我一个承诺。我想要实际的变量,所以我试着像这样等待:

const test_variable =  await getActivityContestApi();
console.log(test_variable);

这给了我反应错误。请帮忙。

标签: javascriptreactjsasynchronous

解决方案


await 只允许在 async 函数中使用。

const test_variable =  await getActivityContestApi();

您只能在另一个异步函数中使用此语句。


推荐阅读