Estoy escribiendo una extensión web que intenta obtener páginas de una API basada en sesión en paralelo. La API utiliza cookies para almacenar la información de la sesión. Entonces, la siguiente secuencia de comandos funcionaría:
// Fetch sequence 1 await fetch("https://url.endpoint/start_session"); const usefulData1 = await fetch("https://url.endpoint/navigate_to_X", { credentials: "include" }); // Fetch sequence 2 await fetch("https://url.endpoint/start_session"); const usefulData2 = await fetch("https://url.endpoint/navigate_to_Y", { credentials: "include" }); Me gustaría ejecutar la secuencia de búsqueda 1 y la secuencia de búsqueda 2 en paralelo. El problema es que, cada vez que accedo a https://url.endpoint/start_session , me devuelven un nuevo conjunto de cookies, y todas las solicitudes de recuperación con { credentials: "include" } usan las cookies configuradas actualmente (que se anulan cuando start_session devoluciones).
Mi pregunta es: ¿hay alguna manera de configurar varias "sesiones" para que estas solicitudes puedan ejecutarse en paralelo con sus propias cookies? ¿O hay alguna otra solución? (Parece que la API de fetch no le permitirá obtener o configurar el encabezado Set-Cookie manualmente...)
Si desea esperar la finalización de dos promesas a la vez, puede usar Promise.all . Esto creará una nueva promesa que solo se resuelve cuando se completan todas las promesas, pero aún permite que se ejecuten en paralelo. En este caso, esperaría el punto final start_session , luego esperaría una Promise.all los otros dos, así:
await fetch("https://url.endpoint/start_session"); const [usefulData1, usefulData2] = await Promise.all([ fetch("https://url.endpoint/navigate_to_X", { credentials: "include" }), fetch("https://url.endpoint/navigate_to_Y", { credentials: "include" }) ])