Sobes.tech
Middle
30

Берілген функцияны жасаңыз, ол қайтарылатын уәделікті (promise) reject етеді, қате ретінде "timeout_error" жолын береді, егер ол көрсетілген уақыт ішінде шешілмесе немесе әдеттегідей жұмыс істесе. @param {Promise} promise - бастапқы уәделік @param {Number} timeoutMilliseconds - уақыт шегі миллисекундпен @return {Promise} - қажетті мінез-құлықпен уәделік function withTimeout(promise, timeout) { return new Promise((res, rej) => { const timeoutId = setTimeout(() => { rej("timeout_error") }) }) }

Сұралған компаниялар
X5 techX5 tech

AI-дан жауап

sobes.tech AI

Функция екі бәсекелес уәделікті құруы керек: бастапқы және белгіленген уақыттан кейін қате "timeout_error" деп қайтарылатын тайм-аут. Содан кейін, ол олардың біреуі шешілген немесе қайтарылған алғашқы уәделікті қайтарады.

function withTimeout(promise, timeoutMilliseconds) {
  return new Promise((resolve, reject) => {
    const timeoutId = setTimeout(() => {
      reject("timeout_error");
    }, timeoutMilliseconds);

    promise.then(
      (value) => {
        clearTimeout(timeoutId);
        resolve(value);
      },
      (error) => {
        clearTimeout(timeoutId);
        reject(error);
      }
    );
  });
}

Бұл тәсіл бастапқы уәделік уақытында аяқталмаса, "timeout_error" қатесімен қайтарылады. Егер ол ерте аяқталса, тайм-аут тоқтатылады.