Javascript 使用异步等待从多个API获取数据
异步/等待在异步获取数据时非常方便,尤其是在Javascript 使用异步等待从多个API获取数据,javascript,reactjs,async-await,Javascript,Reactjs,Async Await,异步/等待在异步获取数据时非常方便,尤其是在 async componentDidMount() { try { const response = await axios.get(endpoints.one) const data = await response this.setState({ data, isLoading: false }) } catch (e) { this.setState({ errors: e
async componentDidMount() {
try {
const response = await axios.get(endpoints.one)
const data = await response
this.setState({ data, isLoading: false })
} catch (e) {
this.setState({ errors: e.response })
}
}
此外,当从多个端点获取数据时,可以很容易地使用
Promise.all([
fetch(endpoints.one),
fetch(endpoints.two),
]).then(([data1, data2]) => {
console.log(data1, data2)
}).catch((err) => {
console.log(err);
});
但是,如何使用aync/await从多个源获取数据,而不是Promise.all?如果您想并行执行,那么您仍然可以Promise.all。您只需等待结果,而不是调用
。然后
async someFunction() {
try {
const [data1, data2] = await Promise.all([
fetch(endpoints.one),
fetch(endpoints.two),
]);
console.log(data1, data2);
} catch (err) {
console.log(err);
}
}
您可以等待
Promise.all()
。从这里可以看到一些答案,提供无需承诺的解决方案。all:您可以简单地等待承诺。all()这是一个好主意,但是当您这样做时,组件会挂载async componentDidMount(){someFunction()}
您在响应中没有获取数据您是指我的示例中没有return语句这一事实吗?