cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk menggunakan hasil fungsi Generator dalam es6?

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中文网2758 hari yang lalu730

membalas semua(1)saya akan balas

  • 怪我咯

    怪我咯2017-06-26 10:52:39

    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

    . 🎜

    balas
    0
  • Batalbalas