Generator函数
Example1: (手动遍历generator函数)
function * gen () {
yield '你好';
yield 'Dear';
return '牧马人'
}
let gent = gen();
console.log(gent.next());
console.log(gent.next());
console.log(gent.next());
console.log(gent.next());
Example2: (自动遍历generator函数)
function * gen () {
yield '你好';
yield 'Dear';
return '牧马人'
}
let gent = gen();
for(let val of gent) {
console.log(val)
}
Example3: (generator函数解构赋值)
function * gen () {
yield '你好';
yield 'Dear';
return '牧马人'
}
let gent = gen();
console.log(a,b,c);
console.log(...gen);
let [a, ...b] = gent;
console.log(a);
console.log(b);
Example4: Array.from()
function * gen () {
yield '你好';
yield 'Dear';
yield 'Dior';
return '牧马人'
}
let gent = gen();
console.log(Array.from(gen()));
Example5: generator函数 axios 请求接口
function * gent() {
let val = yield 'itstrive';
yield axios.get(`https://api.github.com/users/${val}`)
}
let g1 = gent();
let username = g1.next().value;
g1.next(username).value.then(res => {
console.log(res.data);
})