
224
자바스크립트 + 리액트 디자인 패턴
while (retries <= maxRetries) {
try {
return await fn();
} catch (error) {
retries++;
console.error(error);
await new Promise((resolve) => setTimeout(resolve, retryDelay));
}
}
throw new Error(`Failed after ${retries} retries.`);
}
retry(() => makeRequest("http://example.com/")).then((data) => {
console.log(data);
});
9.5.9
async
/
await
데코레이터 작성하기
function asyncDecorator(fn) {
return async function (...args) {
try {
return await fn(...args);
} catch (error) {
throw error;
}
};
}
const makeRequest = asyncDecorator(async function (url) {
const response = await fetch(url);
const data = await response.json();
return data;
});
makeRequest("http://example.com/").then((data) ...