123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- // 使用 Generator 可讲内部代码分段执行 执行yield停止, 通过next()控制继续往下执行
- // function* foo(){
- // console.log(1);
- // console.log("hello");
- // yield;
- // console.log(2);
- // yield;
- // console.log(3);
- // }
- // let foo1 = foo();
- // foo1.next();
- // foo1.next();
- // foo1.next();
- // next 方法有返回值 分别是当前yield语句后边的结果 第二个值为是否结束
- // newt也可以传参数 参数给到上一个yield
- // function* foo(){
- // console.log(1)
- // let x = yield "a";
- // console.log(x)
- // console.log(2);
- // yield 2;
- // console.log(3);
- // return "你好";
- // }
- // let foo1 = foo();
- // console.log(foo1.next());
- // console.log(foo1.next("hello"));
- // console.log(foo1.next());
- function* foo(x) {
- var y = 2 * (yield (x + 1));
- console.log(y);
- var z = yield (y / 3);
- return (x + y + z);
- }
- let foo2 = foo(1);
- console.log(foo2.next());
- console.log(foo2.next(3));
- console.log(foo2.next(1));
-
- </script>
- </body>
- </html>
|