Я озадачен чем-то в API ES6 Promise. Я вижу ясный вариант использования для одновременного представления нескольких асинхронных заданий и "разрешения" при первом успехе. Например, это может привести к ситуации, когда доступны несколько эквивалентных серверов, но некоторые из них, возможно, опущены, а другие сильно загружены и замедлены, поэтому моя цель состояла бы в том, чтобы получить ответ от первого, чтобы добиться успеха, и игнорировать остальные ( да, я знаю, что это неприятный способ для клиента вести себя с точки зрения сервера, но он отлично подходит для конечного пользователя;)
Однако, насколько я вижу, у меня есть либо "все", либо "расы", в которых можно играть. "Все" поведение, похоже, ждет, пока все запросы не будут завершены, а это значит, что я должен ждать самого медленного, даже если сервер уже завершен (действительно, мне, возможно, придется ждать тайм-аута, и это будет катастрофа для этого сценария.) Поведение "расы", однако, похоже, дает мне первое, чтобы завершить, что, если это произойдет, также является катастрофой.
Есть ли что-то в API, которое допускает поведение "raceToSuccess", или мне нужно его вручную создавать. В этом отношении, как я могу создать его вручную?
В качестве побочной заметки я нашел ту же самую головоломку в Java 8 CompletableFuture, которая, кажется, является тесно параллельным API. Итак, я что-то упускаю на философском уровне?