Middle+
Implementeer de functie withTimeout, die een functie en een tijd (milliseconden) accepteert en een nieuwe functie retourneert. Als de oorspronkelijke functie niet binnen de gestelde tijd wordt uitgevoerd, moet de belofte worden afgewezen.
sobes.tech AI
Antwoord van AI
De functie withTimeout moet een functie accepteren die een belofte teruggeeft, en een tijd in milliseconden. Het geeft een nieuwe functie terug die, wanneer deze wordt aangeroepen, de oorspronkelijke functie uitvoert en tegelijkertijd een timer start. Als de oorspronkelijke functie niet binnen de gestelde tijd voltooid is, wordt de belofte afgewezen met een timeout-fout.
Voorbeeldimplementatie in JavaScript:
function withTimeout(fn, ms) {
return function(...args) {
return new Promise((resolve, reject) => {
const timer = setTimeout(() => {
reject(new Error('Timeout'));
}, ms);
fn(...args)
.then(result => {
clearTimeout(timer);
resolve(result);
})
.catch(err => {
clearTimeout(timer);
reject(err);
});
});
};
}
// Gebruik:
// const fetchWithTimeout = withTimeout(fetch, 5000);
// fetchWithTimeout('https://example.com').then(...).catch(...);