Васоитиҳои истифода бурдаатон барои навиштани зангҳои асинхронӣ.
sobes.tech AI
Ҷавоб аз AI
JavaScript пешниҳод мекунад асбобҳои гуногун барои кор бо даъватҳои асинхронӣ:
-
Функсияҳои Callback: Рӯйхати классикӣ, ки дар он функсия ҳамчун аргумент ба функсияи дигар дода мешавад ва пас аз анҷоми амалиёти асинхронӣ иҷро мешавад.
-
Promises (ваъдаҳо): Объектҳое, ки арзиши оянда ё хато дар натиҷаи амалиёти асинхронӣ нишон медиҳанд. Онҳо пайвандсозии даъватҳои асинхронӣ ва коркарди хатоҳоро содда мекунанд.
// Намунаи истифодаи promises fetch('/api/data') .then(response => response.json()) // Коркарди ҷавоби муваффақ .then(data => console.log(data)) // Кор бо маълумоти гирифташуда .catch(error => console.error('Хатогӣ:', error)); // Кор бо хатоҳо -
Async/await: Шакли синтаксӣ дар болоии promises, ки имкон медиҳад, ки кодро ба услуби бештар мутобиқ нависед, ки хонданро беҳтар мекунад.
// Намунаи истифодаи async/await async function fetchData() { try { const response = await fetch('/api/data'); // интизор шудан барои анҷоми fetch const data = await response.json(); // интизор шудан барои парс кардани JSON console.log(data); } catch (error) { console.error('Хатогӣ:', error); } } fetchData(); -
XMLHttpRequest (XHR): API асосӣ барои иҷрои дархостҳои HTTP дар браузер. Ин нисбат ба
fetchсатҳи поёнтар аст ва бештар кодро талаб мекунад.// Намунаи истифодаи XMLHttpRequest const xhr = new XMLHttpRequest(); xhr.open('GET', '/api/data', true); // дархости асинхронӣ xhr.onload = function() { if (xhr.status >= 200 && xhr.status < 300) { console.log(JSON.parse(xhr.responseText)); } else { console.error('Хатогӣ:', xhr.statusText); } }; xhr.onerror = function() { console.error('Хатогии шабаҳа'); }; xhr.send(); -
Fetch API: API муосир ва бештар флексибл барои иҷрои дархостҳои HTTP, ки асос ёфтааст ба promises.
// Намунаи истифодаи Fetch API fetch('/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Хатогӣ:', error)); -
Китобхонаҳо барои кор бо дархостҳои HTTP: Масалан,
axios(барои браузер ва Node.js) ёjQuery.ajax(). Онҳо содда ва стандартизатсия мекунанд иҷрои дархостҳои асинхронӣ.// Намунаи истифодаи Axios axios.get('/api/data') .then(response => console.log(response.data)) .catch(error => console.error('Хатогӣ:', error));
Интихоби асбоб вобаста ба хусусиятҳои вазифа ва контексти лоиҳа аст. Fetch ва async/await усулҳои муосир ва тавсияшуда барои бештари ҳолатҳо мебошанд.