Как зарегистрировать обещания в foreach и разрешить все? - PullRequest
0 голосов
/ 07 января 2019

У меня проблемы с обещаниями и foreach. Я хочу, чтобы внутри обещаний регистра foreach и после разрешения всех обещаний выполнялся некоторый код.

Я уже попробовал async / await, но не решил мою проблему, потому что каждая функция вызова должна быть асинхронной, поэтому я верю, что она будет решена с обещанием

// Исходный код.

async function (rotamed) {

console.log("Before.")

clientes.forEach(c => {
        fc_paciente(rotamed,c)
        fc_servico(rotamed,c)
        especialidades.forEach(esp => {
            fc_profissional(rotamed,c,esp)
        })
    })

    console.log("After.")

}

Попробуйте решить с обещанием:

async function (rotamed) {
console.log("Before.")
let promises = []
clientes.forEach(c => {
                    promises.push(new Promise((resolve,reject) => {
                        fc_paciente(rotamed,c)
                    }))
})
console.log(promises)

Promise.all(promises).then((x) => console.log("After"))

}

Каждая функция вызова fc_paciente, fc_servico и fc_profissional должна быть асинхронной, а когда все решаются, я вызываю console.log («После»).

1 Ответ

0 голосов
/ 07 января 2019

fc_pacientes должен вернуть Обещание с разрешениями () и

clientes.forEach(c => {
                        promises.push(new Promise((resolve,reject) => {
                            fc_paciente(rotamed,c).then(resolve).catch(reject)
                        }))

Спасибо за комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...