Меня интересует случай оборачивания асинхронной операции в таймаут для сбоя при завершении.Например, я пытаюсь получить данные с помощью функции выборки, если через 4 секунды она не приходит, функция возвращает результат, указывающий на ошибку.
Я пытался выяснить это с помощью Promise.гонка, но все еще не может повлиять на возвращаемое значение функции.
async timeoutedAwait(awaitedFunc,timeoutInMs){
setTimeout(()=>{ /* somehow make the function return {success:false,value:undefined} */},timeoutInMs);
return await awaitedFunc();
}
//....
let result=timeoutedAwait(someFetchOperationFunc,4000);
if(result.success){/* success handling code */}
else{ /* failure handling code */}