Ожидайте несколько обещаний параллельно, но возвращайтесь раньше, если они занимают слишком много времени, как только пеJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Ожидайте несколько обещаний параллельно, но возвращайтесь раньше, если они занимают слишком много времени, как только пе

Сообщение Anonymous »

Я работаю с промисами в JavaScript. Мне нужно вызвать обещание, которое возвращает число 3 раза. Эти условия должны быть соблюдены:
  • Обещания должны выполняться параллельно, а не один за другим.
  • Если все промисы выполняются менее чем за 50 мс, а затем возвращают сумму всех трех.
  • Если какой-либо из промисов занимает более 50 мс, верните сумму первых двух, независимо от того, как долго берут.
Я начал, но не знаю, как вернуться пораньше, если обещания затянутся:
function getPromise(): Promise {
return new Promise(resolve => {
setTimeout(()=>{
resolve(Math.round(Math.random() * 10))
}, Math.random() * 100);
})
};

const TIMEOUT_MS = 50;

async function foo(){
const promises = [getPromise(), getPromise(), getPromise()];
const timeBefore = new Date().getTime()
const results: number[] = await Promise.all(promises);
const timeAfter = new Date().getTime();
const duration = timeAfter - timeBefore;

// if the duration is within 50ms then return the sum of all 3
if(duration acc + current, 0);
return sum
}

// todo
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... o-long-onc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»