VovaS
Как пример, идёт загрузка 10000 картинок через Promise.all процес который при хорошем интернете берёт 5 секунд, при плохом 15 секунд. Идёт загрузка и я вижу что загрузка неочень (3G) и я решаю прервать запрос вручную на 10000 и не дожидаясь окончания сделать новый только на 100.
Тут не промисы отменять нужно, а делать совершенно другую абстракцию асинхронности. Нужно делать очередь, вы же 10000 сразу не гетаете одной пачкой, можно выделить например 4 канала обслуживания загрузок, и очередь ожидания на вход. Как только один канал освободился, берем из очереди следующую. Тогда отменять вообще просто.