博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript基础学习——ES6基础-Promise对象
阅读量:3918 次
发布时间:2019-05-23

本文共 1630 字,大约阅读时间需要 5 分钟。

一、认识Promise

  用于处理异步操作,成功了就执行成功的操作,失败了就捕获错误或者停止后续操作。

二、基本语法

  new Promise(function(resolve,reject){
    if(success){
      resolve(); // 成功将调用resolve()方法
    }else{
      reject(); // 成功将调用reject()方法
    }
  })

有三种状态:

pending:初始状态,也称为未定状态,就是初始化Promise时,调用executor执行器函数后的状态。

fulfilled(resolvted):完成状态,意味着异步操作成功。
rejected:失败状态,意味着异步操作失败。

有两种状态可以转化,即

操作成功:pending -> fulfilled

操作失败:pending -> rejected

状态转换是单向的,不可逆转的。

三、then()

它属于Promise的一个方法,它可以包含两个函数作为参数,用来处理操作在成功或失败的处理,可以链式调用。

  
Document

四、catch()

捕获异常,它替代了then()方法中的第二个参数,把异常相关的处理交给catch。

  
Document

五、all()

只有当状态全为fulfilled时,才执行resolve()方法,只要有一个不是fulfilled状态时,状态都将为rejected状态,将执行的是reject()方法。

  
Document

六、resolve()

Promise.resolve()接受一个参数值,可以是普通的值,也可以是具有then()方法的对象和Promise实例。正常情况下,它返回一个Promise对象,状态为fulfilled。但是,当解析时发生错误时,返回的Promise对象将会置为rejected态。

  
Document

七、reject()

Promise.reject()和Promise.resolve()正好相反,它接收一个参数值reason,即发生异常的原因。此时返回的Promise对象将会置为rejected状态。

  
Document

八、async函数

用async可以将普通函数转换为异步处理函数,通常结合await使用,遇到await必须等待await中的函数执行完成之后,才能执行后面的代码。

  
Document

九、ES6新增的数据类型:Symbol

ES5数据类型:number,string,boolean,undefined,null,object

symbol:表示独一无二的值。用在对象的属性中,可以避免与其它属性名发生冲突。

注意:

(1)Symbol不是一个对象,它是一个原始类型的值,不能用new构建。

(2)Symbol不能与其它类型的值进行比较,否则会报错。

  
Document

十、Symbol作为属性名的使用

注意:

(1)Symbol作为属性名时,不能用.作为运算符,而是要用[];
(2)Symbol作为属性名时,这个属性为一个公共属性,不属于私有属性。

十一、Symbol属性名的遍历

用Object.getOwnPropertySymbols()方法完成对Symbol属性名的遍历,而不能使用for...in或for...of进行遍历。

Object.getOwnPropertySymbols()返回的是一个数组,成员是当前对象的所有用作属性名的Symbol值。

  
Document

十二、Symbol.keyFor()方法

可以用它去获取已登记的Symbol类型值的key。

  
Document

 

转载地址:http://rfvrn.baihongyu.com/

你可能感兴趣的文章
关于UIButton的highlighted状态的总结
查看>>
先学再做、先做再学、边做边学,到底一样以什么样的方式来学一项新技术
查看>>
iphone开发-地图注解(地图上的大头针)
查看>>
Java:类与继承
查看>>
深入理解Java:String
查看>>
Java异常处理和设计
查看>>
Java设计模式之观察者模式
查看>>
一位资深程序员大牛给予Java初学者的学习路线建议
查看>>
浅谈Java中的hashcode方法
查看>>
Java NIO:NIO概述
查看>>
Java中的static关键字解析
查看>>
Java多态性理解
查看>>
Java IO流学习总结
查看>>
Java发送http的get、post请求
查看>>
Java中volatile关键字的含义
查看>>
给Java程序猿们推荐一些值得一看的好书
查看>>
Java这些冷知识你知道吗?
查看>>
假如时光倒流,我会这么学习Java
查看>>
一位10年Java工作经验的架构师聊Java和工作经验
查看>>
Java项目经验——程序员成长的钥匙
查看>>