Как ждать зацикливание, прежде чем выполнять другой код? - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу, чтобы мой код мог ждать зацикливание перед его выполнением. Говорит, что у меня есть такой код:

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

1 Ответ

0 голосов
/ 25 апреля 2020

Попробуйте также использовать fetch с async / await:

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);

}
...