সম্পাদনা : আনতে অনুরোধটি এখনও পটভূমিতে চলবে এবং সম্ভবত আপনার কনসোলে কোনও ত্রুটি লগ করবে।
আসলে Promise.raceপদ্ধতির ভাল।
উল্লেখের জন্য এই লিঙ্কটি দেখুন () Promise.race
রেসের অর্থ হ'ল সমস্ত প্রতিশ্রুতি একই সাথে চলবে এবং প্রতিশ্রুতিগুলির মধ্যে একটির মূল্য ফেরতের সাথে সাথে দৌড় বন্ধ হয়ে যাবে। অতএব, শুধুমাত্র একটি মান ফেরত আসবে । আনার সময় শেষ হলে আপনি কল করতে কোনও ফাংশনও পাস করতে পারেন।
fetchWithTimeout(url, {
method: 'POST',
body: formData,
credentials: 'include',
}, 5000, () => { });
এটি যদি আপনার আগ্রহের দিকে চালিত করে তবে সম্ভাব্য বাস্তবায়ন হ'ল:
function fetchWithTimeout(url, options, delay, onTimeout) {
const timer = new Promise((resolve) => {
setTimeout(resolve, delay, {
timeout: true,
});
});
return Promise.race([
fetch(url, options),
timer
]).then(response => {
if (response.timeout) {
onTimeout();
}
return response;
});
}