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

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)
刘奇

yield Kata 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 kaedah next

Dua contoh yang anda berikan kedua-duanya menggunakan yield 接收了 next untuk 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!