Rumah > Artikel > hujung hadapan web > Apakah kegunaan penjana dalam es6
Dalam ES6, penjana digunakan untuk merangkum tugas tak segerak Ia adalah bekas untuk tugas tak segerak, yang membolehkan fungsi melaksanakan atau menjeda mengikut masa yang ditentukan, terdapat satu antara fungsi kata kunci dan nama fungsi. Asterisk (*), sintaksnya ialah "function *name(){..yield..}".
Persekitaran pengendalian tutorial ini: sistem Windows 10, ECMAScript versi 6.0, komputer Dell G3.
Penjana terutamanya pengaturcaraan tak segerak, digunakan untuk merangkum tugas tak segerak, yang membolehkan fungsi dilaksanakan atau dijeda masa yang kita tentukan.
Perbezaan antara mentakrifkan fungsi Penjana dan mentakrifkan fungsi biasa ialah:
Terdapat * (asterisk) antara kata kunci fungsi dan nama fungsi.
Hasil digunakan di dalam fungsi untuk menentukan keadaan dalaman setiap fungsi.
Jika terdapat pernyataan pulangan di dalam fungsi, maka ia adalah keadaan terakhir di dalam fungsi.
Gunakan sintaks:
function *name(){ ... yield; //需要暂停的时候加yield ... yield; ... } const p = name(); p.next() //调用函数,执行到第一个yield处停止 p.next() //从上一个yeild开始执行,到下一个yield处为止
Mari lihat contoh mudah:
// 定义 function* sayHello() { yield 'hello'; yield 'world'; return 'ending'; } // 调用 // 注意,hw获取到的值是一个遍历器对象 let g = sayHello();
Contoh di atas mentakrifkan fungsi Penjana bernama sayHello, yang secara dalaman Terdapat dua hasil ungkapan dan ungkapan kembali. Oleh itu, terdapat tiga keadaan di dalam fungsi: hello, dunia dan penyataan kembali (eksekusi tamat). Akhir sekali, panggil fungsi ini untuk mendapatkan objek traverser dan berikannya kepada pembolehubah g.
Kaedah memanggil fungsi Penjana adalah sama seperti fungsi biasa, nama fungsi (). Perbezaannya ialah:
Selepas fungsi dipanggil, kod dalaman (bermula dari baris pertama) tidak akan dilaksanakan serta-merta.
Akan ada nilai pulangan selepas fungsi dipanggil. Nilai ini ialah objek penunjuk yang menunjuk kepada keadaan dalaman.
[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]
Atas ialah kandungan terperinci Apakah kegunaan penjana dalam es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!