我如何在变量中显示我的承诺数据?
how can i display my promise datas inside of a variable?
我想将从 promise 返回的对象存储在变量中。
我使用 then
和 catch
来获取对象,但是当我记录我的对象获取结果时 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);
我想将从 promise 返回的对象存储在变量中。
我使用 then
和 catch
来获取对象,但是当我记录我的对象获取结果时 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);