这是我的简化代码:
<html>
<body>
<button onclick="testRun()">Click me</button>
<script type="application/javascript" language='javascript1.7'>
function testRun() {
var txt = 'var func = function*() {console.log("hi");';
txt += 'yield true;';
txt += 'console.log("bye");';
txt += 'yield false;}';
eval(txt);
func().next();
func().next();
}
</script>
</body>
</html>
我一直收到以下错误:
1.html:1 Uncaught SyntaxError:意外的标记为真
我见过以下例子:
http://forum.unity3d.com/threads/eval-yield-waitforseconds-javascript.248463/
http://unixpapa.com/js/sleep.html
但是我自己无法做到这一点。
任何人都可以指引我朝着正确的方向前进吗?
编辑: 感谢快速解答,但我遇到了一个新问题: 当使用func()。next();两次我一直在&#34;嗨&#34; &#34;喜&#34;而不是&#34; hi&#34;再见&#34; 谁能帮我理解我做错了什么?
答案 0 :(得分:1)
如果您将代码更改为:
,则代码将有效 function testRun() {
var txt = 'function* func() {console.log("hi");';
txt += 'yield true;';
txt += 'console.log("bye");';
txt += 'yield false;}';
eval(txt);
var gen=func();
gen.next();
gen.next();
}