ES6之Promise

      相信很多倒霉孩子用过Promise,不管是ng的还是node里面的,但是那些或多或少都是封装的,现在我们说一下ES6提供的原生的Promise,简单来说,Promise就是一个对象保存着一个未来才会结束的事件,然后会返回给你API,方便给你这个事件以什么结果结束的处理。promise对象的状态不受外界影响,指根据它内部的那个事件或者异步操作改变而改变,它包含三个状态:pending(进行中)、fulfilled(已成功)、rejected(已失败);它的状态变化只能是 pending==》fulfilled和pending==》rejected,而且状态改变了就不能再变化,就会进行结果输出。

       ES6原生的Promise对象是个构造函数用来生成实例,并且会在新建之后立即执行,promise = new Promise(function(resolve,reject))其中resolve是将promise中的异步操作转换成fulfilled状态并将结果作为参数传递出去,reject是将promise中的异步操作转换成rejected状态并将结果作为参数传递出去。其实例对象方法,promise.then接受两个回调函数做参数表示异步操作的成功和失败的处理,可以做链式操作;promise.catch指定发生错误时的回调函数,并且其中产生的错误如果不被catch会一直传递直到被catch;Promise.all([arr])类似与$q.all([arr])同时处理多个promise的实例,只有promise都fulfilled才会返回fulfilled否则返回rejected;Promise.race([arr])只要arr中的任何一个promise实例状态改变那么整个的状态都会改变,并且它的返回值是最先改变状态的那个实例的返回;Promise.resolve(obj)将obj转化成promise实例对象且状态是fulfilled,如果obj是一个promise对象且then方法齐全,那就直接执行then方法;Promise.reject(obj)返回一个promise对象且状态是rejected,并且obj会成为reject的参数(即失败的错误);promise.done()总是出现在回调链的尾端,保证抛出任何可能的错误;promise.finally()表示不管最后promise的状态是啥都要执行的操作。

      反正可以看作基于ng和node里面的promise方法的拓展,反正写的话方法很乱。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Promiese 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果,语法上说,Pr...
    雨飞飞雨阅读 3,492评论 0 19
  • 特点 Promise能将回调分离出来,在异步操作执行之后,用链式方法执行回调,虽然es5用封装函数也能实现,但是如...
    一二三kkxx阅读 737评论 0 1
  • 本文大部分内容是阮一峰老师的文章,这里搬过来也是为了自己记录,想看更加详细的教程请移步阮一峰老师个人博客 1.Pr...
    四月天__阅读 389评论 0 0
  • Promise的含义:   Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和...
    呼呼哥阅读 2,278评论 0 16
  • 冠孩:哈哈!我一点都不像50多岁!这是认识我的人对我的赞扬!其实是和我天天大课间坚持跑步分不开的!这是内因!希望你...
    春暖花开之歌阅读 269评论 0 0

友情链接更多精彩内容