我想让我的代码在执行之前可以等待循环。说我有这样的代码:
static getData(num){
return fetch('https://somedomain.me/${i}')
.then(resolve => {
return.resolve.json()
})
.then(resolveJson => {
if(resolveJson.status == 'ok'){
return Promise.resolve(resolveJson.data);
} else{
return Promise.reject('Something Error')
}
})
.catch(error => {return Promise.reject(error)});
}
static async myFunction(){
const a = [1, 2, 3, 4, 5];
const content = []
for(let i in a){
try{
const myData = await this.getData(i);
content.push(myData);
}catch(error){
console.log(error);
}
}
console.log(content);
}
但是即使我使用console.log(content)
,也首先执行async-await
。因此,我无法从fetch
获取数据。 myCode出了什么问题?
编辑:return Promise.resolve(resolveJson)
,return Promise.reject('Something Error')
,return Promise.reject(resolveJson)
。和try-catch
答案 0 :(得分:0)
也尝试将fetch
与异步/等待一起使用:
static async getData(num){
const result = await fetch('https://somedomain.me/${i}')
const {data, status} = await result.json()
if (status === 'ok') {
return data
}
throw new Error('Something error')
}
static async myFunction(){
const a = [1, 2, 3, 4, 5];
const content = []
for(const i of a) {
const myData = await this.getData(i);
content.push(myData);
}
console.log(content);
}