Вложенные асинхронные / ожидают с Promise.all - PullRequest
0 голосов
/ 01 ноября 2019

Если у меня есть следующие функции, где funcC вызывает funcA и funcB, которые оба отправляют запросы на веб-сайт.

Обещает. Все будет работать так, как задумано, чтобы функции выполнялись одновременно, или будетБлок funcA / B на их соответствующих ожидающих вызовах?

const funcA = async () => {
    const url = 'https://example.com'
    const method = 'GET'
    const credentials = 'include'
    const mode = 'cors'
    const response = await fetch(url, { method, mode, credentials })
    const cookie = response.headers.get('set-cookie')
    return cookie.split('=')[1].split(';')[0]
}

.

const funcB = async () => {
    const url = 'https://example.net'
    const method = 'GET'
    const mode = 'no-cors'
    await fetch(url, { method, mode }) // return not used
}

.

const funcC = async () => {
    let promises = []
    promises.push(funcA())
    promises.push(funcB())
    promises = await Promise.all(promises);
    // do something with promises
}
...