在Javascript中yield语句何时执行?
When does a yield statement get executed in Javascript?
我对JS 1.7的新yield特性中何时产生值有点困惑。
当我这样写函数时:
function helloWorld() {
console.log('hello');
yield "world";
}
var sayHello = helloWorld();
sayHello.next();
它返回:
>"world"
>"hello"
但是当我这样写函数时:
function helloWorld() {
console.log('hello');
yield console.log("world");
}
var sayHello = helloWorld();
sayHello.next();
它返回:
>"hello"
>"world"
如我所愿我很困惑为什么在第一种情况下"世界"在"你好"之前返回,也许我不明白yield是如何工作的,有没有人可能知道为什么yield会这样做?
对不起,这似乎是一个错误。
我试着在Firefox控制台使用yield,它输出了这个,但当我真正构建了一个实际的文件并在Firefox中运行它之后,它的行为与预期的一样
如果有人好奇
<html>
<head>
</head>
<body>
<script type="application/javascript;version=1.7" >
function helloWorld () {
console.log("hello");
yield "world";
yield "END";
}
var sayHello = helloWorld();
console.log(sayHello.next());
function helloWorld1 () {
console.log('hello');
yield console.log("world");
yield "END2";
}
var sayHello1 = helloWorld1();
sayHello1.next();
console.log(sayHello.next());
console.log(sayHello1.next());
</script>
</body>
</html>
输出:
"你好"世界"你好"世界"结束"END2"
相关文章:
- 如何检测何时执行 iframe 脚本
- AngularJS-由$scope创建的作用域何时执行$new()已删除.垃圾收集器或Angular负责处理它吗
- Javascript:Coderbyte挑战4:字母变化:帮助分析代码:这是如何大写元音的,以及何时执行else语句
- 如果另一个功能完成,则执行该功能,而不是何时
- 何时使用自动函数执行
- 何时执行与 DOM 更改相关的 JavaScript
- $.延迟:如何检测每个承诺何时执行
- 合成 JavaScript 元素何时执行
- 在执行某些 ajax 操作时,此匿名回调函数何时运行
- 如何知道回调循环的哪一次迭代以及何时执行
- 确定异步执行何时完成
- 知道.each()启动的所有异步调用何时执行完毕
- Scala函数何时执行
- 是否可以检测何时执行了Firebase快照
- 何时执行$.Ajax或$.Get或$.post在jQuery AJAX
- Javascript函数何时执行?PHP变量不会改变传入的参数
- loadasync函数导入的外部脚本何时执行
- 关于脚本在追加后何时执行的问题
- JavaScript 何时执行
- 在Javascript中yield语句何时执行?