⊗jsSpPrmAr 170 of 294 menu

Werk met beloftes-versamelings in JavaScript

Nou sal ons twee nuttige metodes ontleed, wat werk met versamelings van beloftes moontlik maak. Die metode Promise.all laat toe om kode uit te voer nadat al die beloftes wat aan dit as 'n versameling oorgedra is, voltooi is, terwyl die metode Promise.race wag vir die voltooiing van die eerste belofte in die versameling, en die res verwerp.

Albei metodes gee 'n nuwe belofte as hul resultaat terug. Vir die metode Promise.all sal die resultaat van hierdie belofte 'n versameling wees van die resultate van al die oorgedrawe beloftes (die volgorde van die resultate kom ooreen met die volgorde van die beloftes in die versameling), en vir Promise.race - die resultaat van die eerste belofte wat voltooi is.

Kom ons kyk in die praktyk. Gestel ons het 'n versameling beloftes:

let promises = [ new Promise(resolve => setTimeout(() => resolve(1), 1000)), new Promise(resolve => setTimeout(() => resolve(2), 2000)), new Promise(resolve => setTimeout(() => resolve(3), 3000)), ];

Kom ons gebruik Promise.all om te wag totdat al die beloftes in ons versameling voltooi is:

Promise.all(promises).then(function(res) { console.log(res); // sal [1, 2, 3] uitvoer - die resultate van al die beloftes });

En nou, deur Promise.race te gebruik, wag ons vir die voltooiing van die eerste belofte:

Promise.race(promises).then(function(res) { console.log(res); // sal 1 uitvoer - die resultaat van die eerste voltooide belofte });

As ten minste een van die beloftes in die versameling verwerp word, sal die belofte met die resultaat onmiddellik na die toestand rejected oorgaan. Daarom kan die ontstane uitsondering gevang word op die gewone, reeds deur julle bestudeerde manier, byvoorbeeld deur catch:

Promise.all(promises).then(function(res) { console.log(res); }).catch(function(err) { console.log(err); });

Maak 'n funksie wat 'n belofte teruggee, binne-in waarvan 'n ewekansige vertraging van 1 tot 10 sekondes gestel is. Laat die belofte hierdie vertraging as sy resultaat teruggee. Deur 'n lus en jou funksie te gebruik, vul 'n versameling met 10 beloftes.

Deur die versameling beloftes uit die vorige taak te gebruik, maak so dat die resultaat van die eerste voltooide belofte in die konsole uitvoer.

Deur die versameling beloftes uit die vorige taak te gebruik, maak so dat die som van die resultate van al die beloftes in die konsole uitvoer.

Afrikaans
Azə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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp