⊗jsSpPrmFC 171 of 294 menu

JavaScript-da Işlenen Promiselary Döretmek

Käwagt siz eýýäm ýerine ýetirilen promis döretmek isläp bilersiňiz. Bun üçin iki usul bar: Promise.resolve usuly üstünlikli ýerine ýetirilen promis döredýär, Promise.reject usuly bolsa inkär edilen promis döredýär. Bu usullar parametr hökmünde promisiň netijesi ýa-da ýalňyşlygy boljak zady alýarlar.

Eýýäm ýerine ýetirilen promis haçan gerek bolar? Mysal üçin göreli. Bizde bir san parametri alýan, oňa asinhron ýagdaýda bir zat edýän we netijesi bilen promis gaýtaryan funksiýa bar bolsun:

function func(num) { return new Promise(function(resolve) { setTimeout(function() { resolve(num * num); }, 3000); }); }

Funksiýamyzdan aşakdaky ýaly peýdalanyp bolarys:

func(5).then(function(res) { console.log(res); // 25-ni görkezer });

Indi diýeliň biz karar berdik, asinhron amalymyzy diňe noldan uly san berlen bolsa ýerine ýetireris. Beýle däl ýagdaýda funksiýanyň netijesi nol bolmaly:

function func(num) { if (num > 0) { return new Promise(function(resolve) { setTimeout(function() { resolve(num * num); }, 3000); }); } else { return 0; // nol netije } }

Emma indi funksiýa ýa promis ýa-da san gaýtarýar. Şonuň üçin funksiýanyň netijesine then metodyny ulanyp bolmaýar, sebäbi funksiýa san gaýtaran ýagdaýda, biz ýalňyşlyk alarys:

func(0).then(function(res) { // ýalňyş, nola then metodyny ulanýarys });

Bu meseläni Promise.resolve çözer:

function func(num) { if (num > 0) { return new Promise(function(resolve) { setTimeout(function() { resolve(num * num); }, 3000); }); } else { return Promise.resolve(0); // san däl-de promis gaýtarýarys } }

Indi diýeliň biz karar berdik, berlen nol üçin noly, noldan kiçi sanlar üçin bolsa çäklendirmäni gaýtarmaly. Bize Promise.reject usuly kömek eder:

function func(num) { if (num > 0) { return new Promise(function(resolve) { setTimeout(function() { resolve(num * num); }, 3000); }); } else if (num === 0) { return Promise.resolve(0); } else { return Promise.reject('nädogry san'); // inkär edilen promis gaýtarýarys } }
Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et