Generator 函数

控制函数的执行过程,手工暂停和恢复代码执行

function* test() {
    console.log('start')
    yield
    console.log('end') 
}
let Test = test()
Test.next() // start
Test.next() // end
1
2
3
4
5
6
7
8

内层不是无限循环 每次调用 通过next() 方法调用

function* getNumber(){
    while(true){
        yield Math.random()*100
    }
}
let myMoney = 15
let currentMoney =100

let GetNumber = getNumber()

while (currentMoney>myMoney){
    currentMoney = GetNumber.next().value
    console.log(currentMoney)
}
console.log(`当前数值是${currentMoney}`)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Last Updated: 11/5/2020, 2:10:52 PM