1. Visão geral
O gerador é um novo tipo de dados introduzido pelo ES6. Parece uma função. Além de usar o retorno, o rendimento pode ser retornado várias vezes.
O gerador é definido por função *, (nota * número),
2. Exemplo
As funções não podem salvar o estado e, às vezes, são necessárias variáveis globais para economizar números;
2.1
'Use Strict'; function next_id () {var id = 1; while (ID <100) {ID do rendimento; id ++; } retornar id;} // teste: var x, pass = true, g = next_id (); para (x = 1; x <100; x ++) {if (g.next (). value! == x) {pass = false; alerta ('teste falhou!'); quebrar; }} if (pass) {alert ('teste passado!');}2.2 um iterador de loop infinito
função* idmaker () {var index = 0; enquanto (true) Índice de rendimento ++;} var gen = idmaker (); // "gerador {}" console.log (gen.next (). Value); // 0console.log (gen.Next (). Valor); // 1console.log (gen.Next (). Valor); // 22.3Generator.prototype.Next ()
Quando a iteração termina, gerador.Next (). Done === True, antes de terminar === false
função* gen () {rendimento 1; rendimento 2; rendimento 3;} var g = gen (); // "gerador {}" g.next (); // "objeto {value: 1, feito: false}" g.next (); // "objeto {value: 2, feito: false}" g.next (); // "objeto {value: 3, feito: false}" g.next (); // "Objeto {valor: indefinido, feito: true}"2.4 gerador.prototype.return ();
O método de retorno retorna o valor do parâmetro fornecido e encerra o iterador
exemplo
função* gen () {rendimento 1; rendimento 2; rendimento 3;} var g = gen (); g.next (); // {value: 1, feito: false} g.return ("foo"); // {value: "foo", feito: true} g.next (); // {value: indefinido, feito: true}Observe que, se o valor do feito for verdadeiro e, em seguida, chama o retorno, o valor retornado também será indefinido.
function* gen () {rendimento 1;} var g = gen (); console.log (g.next ()); // {value: 1, feito: false} console.log (g.next ()); // {value: indefinido, feito: true} console (g.return (1)); // {value: indefinido, feito: true}2.5 gerador.prototype.THOW ()
O método thorw () recupera a execução do iterador jogando uma exceção no iterador;
Retorna um objeto com dois atributos: valor e feito
function* gen () {while (true) {tente {rendimento 42; } catch (e) {console.log ("Catch de erro!"); }}} var g = gen (); var a = g.next (); // {value: 42, feito: false} var b = g.throw (novo erro ("algo deu errado")); // "erro de erro!" // {value: 42, done: False} Console.Log (a); console.log (b.value ":O artigo acima detalhado do tipo de dados do gerador JS é todo o conteúdo que compartilhei com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.