我知道next()方法的用法,它将迭代器推进到yield关键字的下一个位置,并返回包含yield表达式结果的对象,如下所示:
yield double(40); => 调用iterator.next()将返回类似于 {done:false, value:80} 的东西
然而,我不太清楚throw()方法是否也会推进迭代器并返回下一个yield的表达式,除了将异常抛入生成器。文档说得像这样:
throw()方法通过将错误抛入生成器来恢复生成器的执行,并返回一个包含两个属性done和value的对象。
当我们调用iterator.throw()时,它是否会将异常抛入生成器(异常正确捕获)并推进到下一个yield关键字并返回yield表达式的结果?
如果需要,在此贴中包含代码片段以演示这一点,请告诉我,因为这是我在Stackoverflow上的第一篇文章。
谢谢!!!
yield double(40); => 调用iterator.next()将返回类似于 {done:false, value:80} 的东西
然而,我不太清楚throw()方法是否也会推进迭代器并返回下一个yield的表达式,除了将异常抛入生成器。文档说得像这样:
throw()方法通过将错误抛入生成器来恢复生成器的执行,并返回一个包含两个属性done和value的对象。
当我们调用iterator.throw()时,它是否会将异常抛入生成器(异常正确捕获)并推进到下一个yield关键字并返回yield表达式的结果?
如果需要,在此贴中包含代码片段以演示这一点,请告诉我,因为这是我在Stackoverflow上的第一篇文章。
谢谢!!!