Es6 Promise 异步async 与 等待await Symbol Symbol.iterator迭代器 生成器 代理prxoy

1.Promise解决回调地狱

在JavaScript中,难免会遇到异步访问的场景,比如打开文件,访问数据库等等。如果不做好异步控制,会导致意外结果(比如 返回值还没返回就想调用)因此,一种典型的做法是:

代码少的时候还可以 但是一但代码多 改错时就会很麻烦所以 基于当时的困境,有人提出了Promise

一个promise对象then之后还是promise,因此可以一直then下去,从而实现嵌套回调。

输出结果

 

2异步async 与 等待await

定义一个say 函数

 用async方法定义该函数 async装饰的函数返回的是一个promise对象

                                只能在async函数里面使用
        await                当函数遇到await 等待await结果,再往下执行

 输出结果

 

3 Symbol

表示独一无二的值,最大的用法是用来定义对象的唯一属性名。

Symbol 函数栈不能用 new 命令,因为 Symbol 是原始数据类型,不是对象。可以接受一个字符串作为参数,为新创建的 Symbol 提供描述,用来显示在控制台或者作为字符串的时候使用,便于区分。

4 Symbol.iterator迭代器

1可迭代对象都拥有迭代器(可以被for of 遍历对象都是可迭代对象) String Array Set Map

通过next方法进行迭代 一直往下执行直到
itr.next()

5 生成器

普通函数前面添加 *
2 通过yield关键来控制生成
 

 最终函数执行 返回一个可迭代元素

4 生成器案例 生成2-101 间隔为2的数字元素

 

 代理prxoy

1 对原对象操作的劫持

2 o.msg 会执行get方法
o.msg=“abc” 会执行set方法
我们可以在get和set方法里面做一些判断劫持等其他操作

3 console.log(o.msg)
获取o的msg值 执行o代理里面的get方法 return obj["msg"]

o.msg = "abc"
设置o的msg值 执行o代理的set方法 
obj["msg"] = "abc"

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值