Discuss / JavaScript / 自增 Id

自增 Id

Topic source

有些好奇,while(true) 为什么不会导致死循环,每次生成1个数字后会自动阻塞执行吗,直到调用next()方法唤醒?

    let id =1;
    while (true) {
     yield id++;
    }    
    return;

js中有id++和++id有区别吗?

磊磊信

#3 Created at ... [Delete] [Delete and Lock User]

我的理解是yield语句只在调用next()方法时才会执行,所以如果while(true)条件下只有这一条语句的话应该是不会进入死循环的。

18thhell

#4 Created at ... [Delete] [Delete and Lock User]

感觉不是阻塞执行,是yield时跳出函数并储存当时的状态。执行next()时还原当时的状态,从上次yield的位置向下执行。

Phioton

#5 Created at ... [Delete] [Delete and Lock User]

支持楼上老哥的解释。


  • 1

Reply