⊗jsSpPrmPf 172 of 294 menu

Промисификатсияи рамзи асинхронии дар JavaScript

Чунки ваъдаҳо (promises) ба JavaScript зуд ворид нашудаанд, баъзе функсионалҳои асинхронӣ метавонанд ваъдаҳоро дастгирӣ накунанд. Дар ин ҳолат муфид аст, ки болои чунин рамзе пӯшише ба сурати ваъда (promise) созед, зеро истифода бурдани ваъдаҳо хеле роҳаттар аст. Ин табдилдиҳӣ промисификатсия номида мешавад.

Мисоли функсионале, ки ваъдаҳоро дастгирӣ намекунад, метавонад боркунии аксҳо бошад, ки мо аллакай дар дарсҳои қаблӣ таҳлил карда будем:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); }); image.addEventListener('error', function() { console.log('хатои боркунии акс'); });

Биёед промисификатсияи ин рамзро иҷро кунем, онро дар функсияе печонем, ки ваъда (promise) бармегардонад:

function loadImage(path) { return new Promise(function(resolve, reject) { let image = document.createElement('img'); image.src = path; image.addEventListener('load', function() { resolve(image); }); image.addEventListener('error', function() { reject(new Error('хатои боркунии акс "' + path + '"')); }); }); }

Мо метавонем аз функсияи худ ба тариқи зерин истифода барем:

loadImage('img.png').then(function(image) { document.body.appendChild(image); }).catch(function(error) { console.log(error); });

Мустақилона, ба рамзи ман наменигаред, промисификатсияи боркунии аксҳоро иҷро кунед. Рамзи ба даст омадаро санҷед.

Бигзор роҳҳо ба аксҳо дар массив нигоҳ дошта шаванд:

let paths = ['img1.png', 'img2.png', 'img3.png'];

Рамзе нависед, ки интизор шудани поёни боркурии ҳамаи аксҳоро интизор мешавад, сипас онҳоро дар давр (loop) ба охири body илова мекунад.

Рамзи зерин дода шудааст:

window.addEventListener('DOMContentLoaded', function() { console.log('dom бор карда шуд'); });

Промисификатсияи онро иҷро кунед.

Тоҷикӣ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан