yield*

ULASHISH

Tavsif

yield* operatori bajarilishni boshqa generator funksiyasi yoki iteratsiya qilinadigan obyektga topshiradi.

yield* qanday ishlaydi

yield singari bitta qiymat berish o‘rniga, yield* JavaScript’ga boshqa ketma-ketlik "ichiga kirish", uning barcha elementlarini birma-bir chiqarib olish va tugagach, qaytib kelishni buyuradi.


Ichma-ichlik o‘xshatishi

Ko‘chish uchun qutilarni joylayotganingizni tasavvur qiling.

Oddiy yield — katta ko‘chish qutingizga bitta buyumni solishga o‘xshaydi.

yield* dan foydalanish esa allaqachon joylangan bir nechta kichikroq qutilarni ham qo‘shib olishga o‘xshaydi.

Misol

// Create a Generator function function* countToThree() {   yield 1;   yield 2;   yield 3; } function* masterGenerator() {   yield "Start";   // Delegate to the countToThree generator   yield* countToThree();   yield "End"; } const iterator = masterGenerator(); let text = ""; for (const value of masterGenerator()) {   text += value; }
O‘zingiz sinab ko‘ring »

U qanday ishlaydi

yield* dan keyin iteratsiya qilinadigan obyekt (masalan, massiv yoki boshqa generator funksiyasi) yoziladi.

U shu obyekt bo‘ylab aylanib chiqadi va topgan har bir qiymatni beradi (yield).



Uni massivlar bilan ham ishlatish mumkin!

yield* istalgan iteratsiya qilinadigan obyekt bilan ishlagani uchun, undan oddiy JavaScript massivlari yoki stringlarini chalkash sikl yozmasdan chiqarib berishning qisqa yo‘li sifatida foydalanishingiz mumkin.

Misol

// Create an Array const food = ["Milk", "Bread", "Eggs"]; function* groceryList() {   yield "Apples";   // Loop the array   yield* food;   yield "Chocolate"; } for (const item of groceryList()) {   text += item; }
O‘zingiz sinab ko‘ring »

Brauzerlarda qo‘llab-quvvatlash

yield* — ECMAScript6 (ES6 2015) imkoniyati.

JavaScript 2015 2017-yil iyunidan beri barcha brauzerlarda qo‘llab-quvvatlanadi:

Chrome
51
Edge
15
Firefox
54
Safari
10
Opera
38
2016-yil may 2017-yil aprel 2017-yil iyun 2016-yil sentabr 2016-yil iyun

Shuningdek qarang:

yield operatori

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!