Обещание в обещании - PullRequest
       28

Обещание в обещании

0 голосов
/ 24 октября 2018

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

(async() => {
    const personsArr = await Promise.all(persons.map(async (person) => {
        await someSyncFunc();
        const petsArr = await Promise.all(pets.map(async (pet) => {
          await asyncSetPetName(pet, person);
        }));
        Promise.resolve(petsArr)
            .then(async () => someSyncFunc());
            .then(() => console.log('pets resolved'));
    }));
    Promise.resolve(personsArr)
        .then(async  () => someSyncFunc());
        .then(() => console.log('persons resolved'));
})();

Сначала проблема Promise.resolve считается для лиц Arr.

1 Ответ

0 голосов
/ 24 октября 2018

Это Promise.resolve(arr).then(…) не имеет никакого смысла.Мало того, что arr уже является массивом (ничего не нужно разрешать), но также вы не должны использовать then при работе с async / await:

(async() => {
    const personsArr = await Promise.all(persons.map(async (person) => {
        const petsArr = await Promise.all(pets.map(async (pet) => {
            return asyncSetPetName(pet, person);
        }));
        console.log('pets resolved');
    }));
    console.log('persons resolved');
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...