当前位置: 首页 > news >正文

网站建设的技术可行性分析芜湖做公司网站的

网站建设的技术可行性分析,芜湖做公司网站的,龙岩做网站龙岩网页设计,seo职位信息iterator和generator iterator es6: let/const ...展开 迭代器 是一种机制,比如在控制台输出Iterator是没有这个类的,为不同的数据结构提供迭代循环的机制。 迭代器对象:具备next方法,next能够对你指定的数据进行迭代循环&#x…

iterator和generator

iterator

es6: let/const ...展开 

迭代器

是一种机制,比如在控制台输出Iterator是没有这个类的,为不同的数据结构提供迭代循环的机制。

迭代器对象:具备next方法,next能够对你指定的数据进行迭代循环,next依次取出集合中的每一项。第一次执行next拿第一项,第二次执行next拿第二项……

内部实现

具备Symbol.iterator

JS - iterator(迭代器)

内部实现

ps.done为true结束那个循环,为true时那个值也不要了

obj={name:'angela',age:18,sex:'female'}
Object.prototype[Symbol.iterator]=function(){
    let self=this;
    let keys=Object.keys(self)
    let index=0;
    return {
        next(){
            // 边界校验
            if(index>=keys.length){
                return {
                    value:undefined,
                    done:true
                }
            }
            let key=keys[index++];
            let value=self[key];
            return {
                value,
                done:false,
            }
        }
    }
}
console.dir(obj)
for(let value of obj){
    console.log(value)
}

JS中的循环

new Array(99999999)  // 这个时候还是一个稀疏数组

稀疏数组是不能使用for of循环的,使用fill填充

generator生成器

生成了一个具有迭代器规范的对象(迭代器对象),

返回一个迭代器对象

通过next&yield控制函数体中的代码一步步执行

每次next得到的value就是每次执行到yield(或return)后的值

每次next传值作为上次yield的返回结果

yield* 进入生成器执行

串行

终极解决方案:递归实现

初级版

判断是否是promise


function wait(timeout){return new Promise(resolve=>{setTimeout(function() {resolve()}, timeout);})
}
function* asyncFuncton(){yield wait(1000)
    console.log('第1秒')yield wait(2000)
    console.log('第2秒')yield wait(3000)
    console.log('第3秒')
}
it=asyncFuncton()
function isPromise(obj){if(typeof obj ==='object' && obj != null || typeof obj ==='function'){if(obj.then && typeof obj.then ==='function'){return true}}return false
}
function co(it){return new Promise((resolve,reject)=>{function next(){let { value,done }=it.next()
            console.log(value,done)if(done) return resolve();// 处理value为非promise的情况if(!isPromise(value)) value=Promise.resolve(value)
            value.then(()=>{next()}).catch((e)=>reject(e))}next()})}
co(it);

完善版:

http://www.yayakq.cn/news/867210/

相关文章:

  • 番禺网站建设策划seodg官网
  • 建网站 可以看到访客吗品牌建设是指什么的行为过程
  • 如何设计购物网站免费推广途径有哪些
  • 被攻击网站影响网站速度的代码
  • 网站内容优化的准则装修网名字大全
  • 体育西网站开发定制吉林市城市建设管理执法局网站
  • 主播网站建立江苏省住房和城乡建设厅网站首页
  • 上的网站appwordpress标签云修改
  • 信宜做网站设置dedecms确定网站风格
  • 网站可以做参考文献吗wordpress 域名更改
  • 程序员自己做项目的网站手机免费制作ppt
  • 九江市建设工程门户网站wordpress博客站点地图
  • 玫琳凯网站建设与推广方案游戏开发与网站开发哪个难
  • 中国最好的网站制作建网站如果不买域名别人能不能访问
  • 品牌网站建设d小蝌蚪营业推广策划方案
  • 自己做卖东西的网站微信登录入口官网
  • 企业网站建设作用提供企业网站建设公司
  • 做百度网站要注意什么wordpress 转义
  • 商洛网站制作服装网站开发
  • 韶关做网站需要多少钱用服务器建立网站吗
  • zend studio 网站开发公司网站建设的心得
  • 有公众号要不要做网站书画网站 建设方案
  • 网站搜索 收录优化十堰市建设网站的公司
  • 中跃建设集团网站吗网站建设培训机构哪里好
  • 购物网站怎么做如何扫描一个网站的漏洞
  • 网站注册界面代码wordpress的固定链接
  • 丽水市网站建设登录网站模板
  • 网站项目建设措施传奇版本网页游戏
  • 做贸易网站深圳网络营销推广公司
  • 一家专门做内部优惠的网站天津 网站 备案