123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- /**
- * 异步编程 文件操作 网络操作 数据库操作
- *
- */
- // 定时器模拟 -- 回调地狱
- // setTimeout(()=>{
- // console.log(111)
- // setTimeout(()=>{
- // console.log(222)
- // },2000)
- // },1000)
- //1、 通过生成器函数
- function one(){
- setTimeout(()=>{
- console.log(111)
- iterator.next()
- },1000)
- }
- function two(){
- setTimeout(()=>{
- console.log(222)
- iterator.next()
- },2000)
- }
- function three(){
- setTimeout(()=>{
- console.log(333)
- iterator.next()
- },3000)
- }
- function * gen(){
- yield one()
- yield two()
- yield three()
- }
- //调用
- let iterator = gen()
- iterator.next()
- //2、获取用户数据 获取订单数据 获取商品数据
- function getUsers(){
- setTimeout(()=>{
- let data = 'user data'
- //调用next方法 传入数据
- iterator1.next(data)
- },1000)
- }
- function getOrders(users){
- setTimeout(()=>{
- let data = 'order data'
- iterator1.next(data)
- },1000)
- }
- function getGoods(orders){
- setTimeout(()=>{
- let data = 'good data'
- iterator1.next(data)
- },1000)
- }
- function * gen1(){
- let users = yield getUsers();
- console.log(users)
- let orders = yield getOrders(users);
- console.log(orders)
- let goods = yield getGoods(orders);
- console.log(goods)
- }
- let iterator1 = gen1()
- iterator1.next()
-
- </script>
- </body>
- </html>
|