我如何在变量中显示我的承诺数据?

how can i display my promise datas inside of a variable?

我想将从 promise 返回的对象存储在变量中。

我使用 thencatch 来获取对象,但是当我记录我的对象获取结果时 undefined.

这是我的代码:

    let allStudents;
    const getStudents = async () => {
        try {
            const response = await Axios.get('/api/v1/student/')
            return response
        } catch (error) {
            console.error(error);
        }
    }
    
    let gsk = getStudents().then((res) => {
        allStudents = res.data
        return allStudents
    }).catch((err) => {
        console.log(err);
    })
    
    console.log(allStudents)

在承诺中使用 .then() 时,不会立即调用您的回调。特别是,调用 .then() 的函数将继续执行,这样函数中后面的行将在 您的回调之前执行。

在您的示例中,对 allStudents 的赋值在执行回调之前不会发生,并且在您已经尝试使用 console.log(allStudents) 打印出该值之前不会发生。

let gsk = getStudents().then((res) => {
  // this code not executed until getStudents() complete
  allStudents= res.data
  return  allStudents
})

// this code is executed before getStudents() completes
console.log(allStudents)

为了在继续执行之前等待 promise 解决,您可以使用 await 代替:

let res = await getStudents(); // do not continue until getStudents() completes
allStudents = res.data;
console.log(allStudents);