javascript - Bagaimana untuk menggunakan hasil fungsi Generator dalam es6?
PHP中文网
PHP中文网 2017-06-26 10:50:39
0
1
596

Mari kita lihat kodnya dahulu:

function wrapper(generatorFunction) { return function (...args) { let generatorObject = generatorFunction(...args); generatorObject.next(); return generatorObject; }; } const wrapped = wrapper(function* () { console.log(`First input: ${yield}`); return 'DONE'; }); wrapped().next('hello!') // First input: hello!

Bagaimana untuk memahami hasil output ini? Setelah berfikir panjang, saya tidak dapat memahami keputusan pembedahannya.
Terdapat juga kod berikut:

function* dataConsumer() { console.log('Started'); console.log(`1. ${yield}`); console.log(`2. ${yield}`); return 'result'; } let genObj = dataConsumer(); genObj.next(); // Started genObj.next('a') // 1. a genObj.next('b') // 2. b

Saya masih tidak faham, tolong bantu saya menganalisis dua keping kod di atas dan bantu saya mempelajari fungsi Penjana. Terima kasih.

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua (1)
刘奇

yieldKata kunci mempunyai dua fungsi:

  1. Menjeda pelaksanaan fungsi penjana dan mengembalikan nilai ungkapan berikut

  2. Sambung semula pelaksanaan fungsi penjana dan dapatkan parameter pilihan yang diluluskan oleh kaedahnext

Dua contoh yang anda berikan kedua-duanya menggunakanyield接收了nextuntuk menerima parameter yang dihantar melalui kaedah

.
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!