⊗jsSpPrmPf 172 of 294 menu

JavaScriptтеги асинхрондук кодду промисификациялоо

Промисстер JavaScriptте жаңы эле пайда болгондуктан, кээ бир асинхрондук функционал промисстерди колдобой калышы мүмкүн. Бул учурда мындай коддун үстүнө промис каптагычты түзүү пайдалуу, анткени промисстерди колдонуу андай ыңгайлуу. Мындай өзгөртүү промисификация деп аталат.

Промисстерди колдобогон функционалдын мисалы катары, биз мурунку сабактарда карап чыккан сүрөттөрдү жүктөө кызматын келтире алабыз:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); }); image.addEventListener('error', function() { console.log('image load error'); });

Келгиле, бул кодду промис кайтара турган функцияга ороп, аны промисификациялайлы:

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('image "' + path + '" load error')); }); }); }

Биз өз функциябызды төмөнкүдөй колдоно алабыз:

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

Өз алдынча, менин кодумга карабастан, сүрөттөрдү жүктөөнү промисификациялаңыз. Алынган кодду сынап көрүңүз.

Сүрөттөргө барып жетүү жолдору массивде сакталсын:

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

Бардык сүрөттөр жүктөлүп бүткөндөн кийин күтүп, анан аларды цикл менен 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 файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу