美文网首页
2020-04-26promise(一)

2020-04-26promise(一)

作者: 夏天的风2020 | 来源:发表于2020-04-26 17:41 被阅读0次

promise记录一下!
含义
Promise是异步编程的一种解决方案,比传统的解决方案—回调函数和事件—更合理和强大。
所谓promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
从语法上说,Promise是一个对象,从它可以获取异步操作的消息。
Promise提供统一的API,各种异步操作都可以用同样的方法进行处理。

promise对象两个特点:

1.对象的状态不受外界影响。promise对象代表一个异步操作,有三种状态:
   pending(进行中),
   fuifilled(已成功),
   rejected(已失败)。
   `只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。`
   这也是promise这个名字的由来,它的英语的意思就是‘承诺’,表示其他手段无法改变。

2.一旦状态改变,就不会再变。任何时候都可以得到这个结果。
   promise对象的状态改变,只要两种可能:
   从pending变为fulfilled,
   从pending变成rejected,
   `只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果,这时就称为resolved (已定型)。`
    如果改变已经发生了,你再对promise对象添加回调函数,也会立即得到这个结果。
    这与事件(Event)完全不同,事件的特点是,如果你错过了它,再去监听,是得不到结果的。

有了promise对象,就可以将异步操作`以同步操作的流程`表达出来,避免了层层嵌套的回调函数。
此外,promise对象提供统一的接口,使得控制异步操作更加容易。

promise缺点:
      首先,无法取消promise,一旦新建它就会立即执行,无法中途取消。
      其次,如果不设置回调函数,promise内部抛出的错误,不会反应到外部。
      第三,当处于pending状态时,无法得知目前进展到哪一个阶段了(刚刚开始还是即将完成。)

promise基本用法:
ES6规定,promise对象是一个构造函数,用来生成promise实例。
下面代码创造了一个promise实例。

const promise = new Promise( (resolve,reject) = > {
//...some code
if( /*异步操作成功*/ ){
   resolve(value);
 }else{
   reject(error);
 }
})

promise构造函数接受`一个函数`作为参数,该函数的两个参数分别数resolve和reject。

它们是两个函数,由JavaScript引擎提供,不用自己部署。

`resolve函数的作用是,将promise对象的状态从'未完成'变成'成功'(即从pendng变为resolved),`
`在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;`

`reject函数的作用是,将promise对象的状态从'未完成'变成'失败'(即从pending变成rejected),`
`在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。`

`以同步操作的流程`











相关文章

  • 2020-04-26promise(一)

    promise记录一下!含义Promise是异步编程的一种解决方案,比传统的解决方案—回调函数和事件—更合理和强大...

  • 。一一,一,一,一。

    一,、

  • 一 一

    2018年6月22日 星期五 雨 一水一万物 一星一宇宙 一字一文章 一书一世界 一读一微笑 一赞一知音

  • 一 一

    杨德昌《一 一》,早年曾看过一遍。 婷婷短发,白净,蓝色衬衫,学生裙,黑皮鞋,白袜子,学习很好的中学女生。温柔,懂...

  • 一 一

    给自己无处安放的灵魂找到了家!简书,我的新写作时光!继续,在流年里拾荒,禅落一身的光!

  • 一.一

  • 一.一

    一节车厢,一只行囊,肯为当时一念疯狂。 一根点燃,一缕惆怅,不许未来一片迷茫。 一眼远看,一众不详,哪知各位一去何...

  • 一(一)

    我叫一,总有人喜欢在背后说我,因为很多时候我都是自己一个人。很多人都说我很孤单,看起来很可怜,但我觉得很奇怪,他们...

  • (一-一)

    白天不看书晚上开灯照亮全宿舍的sb们该睡了

  • 一梦一寻(一)

    01 你在想什么?宝贝。” 一个磁性而温柔的声音传来。一双温柔的手轻抚我的头,这温暖使我从漫天的思绪中挣脱出来。 ...

网友评论

      本文标题:2020-04-26promise(一)

      本文链接:https://www.haomeiwen.com/subject/wpyjwhtx.html