Middle
// Мушкилоти чечимин эки кызматта текшерүү үчүн чакырыңыз: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Эгер эки суроо да true кайтарса - console.log()да success деп көрсөтүңүз // - Эгер бирөө false кайтарса - console.log()да fail деп көрсөтүңүз // - Эгер бирөө жооп бербесе - console.log()да error деп көрсөтүңүз // - Эгер бирөө 1 секунддан ашык жооп берсе - console.log()да timeout деп көрсөтүңүз
sobes.tech AI
AIден жооп
Для решения задачи нужно параллельно вызвать checkResult для двух URL и обработать результаты с учетом таймаута и ошибок.
Пример на JavaScript с использованием Promise.race для таймаута:
async function verifySolution(url1, url2, solution) {
const timeoutPromise = new Promise((_, reject) =>
setTimeout(() => reject(new Error('timeout')), 1000)
);
try {
const [res1, res2] = await Promise.all([
Promise.race([checkResult(url1, solution), timeoutPromise]),
Promise.race([checkResult(url2, solution), timeoutPromise])
]);
if (res1 === true && res2 === true) {
console.log('success');
} else {
console.log('fail');
}
} catch (error) {
if (error.message === 'timeout') {
console.log('timeout');
} else {
console.log('error');
}
}
}
Логика:
- Если оба ответа true — выводим "success".
- Если хоть один false — "fail".
- Если хоть один промис отклоняется (например, ошибка сети) — "error".
- Если хоть один промис не ответил за 1 секунду — "timeout".