笔记:promise,fetch/require,async/await

promise

1.简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。最大的好处,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。
2.有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)
3.只有两种可能:从pending变为fulfilled和从pending变为rejected
4.resolved可以将pending状态改成fulfilled状态
5.then有两个参数,可以理解为处理fulfilled与rejected这两个状态的回调函数,一般我们在第一个回调函数里用resolved(data)来返回给调用者
6.then方法返回的是一个新的promise对象,promise.then().then().then()这种写法是可以的
7.promise可以配合es7里的async使用,return一个resolve对象而不是一个promise对象
8.catch返回的也是一个promise对象,后面也可以跟着then

如果某些事件不断地反复发生,一般来说,使用 Stream 模式是比部署Promise更好的选择。

缺点
1.执行后无法取消
2.如果不设置回调函数,Promise内部抛出的错误,不会反应到外部
3.当处于pending状态时,无法得知目前进展到哪一个阶段

fetch/require

1.是browser对象里window对象的方法
2.下一代类似ajax的API,很好的实现了对xhr的封装
3.fetch(require).then().then().catch()的方式调用,在require里设置url,method,mode等
4.Get请求有参数的时候,跟在require的url后面
5.require可以设置表头请求时候带上cookie

async/await

1.async函数就是将 Generator 函数的星号(*)替换成async,将yield替换成await,仅此而已。

  1. Generator 函数需要执行器去一条条的执行,async函数自带执行器,可以跟普通函数一样,一行代码执行
    3.async函数返回的是 Promise 对象,可以作为await命令的参数
    4.正常情况下,await命令后面是一个 Promise 对象。如果不是,会被转成一个立即resolve的 Promise 对象
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Promise的含义:   Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和...
    呼呼哥阅读 2,202评论 0 16
  • Promise 对象 Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函...
    neromous阅读 8,735评论 1 56
  • 00、前言Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区...
    夜幕小草阅读 2,150评论 0 12
  • 目录:Promise 的含义基本用法Promise.prototype.then()Promise.prototy...
    BluesCurry阅读 1,503评论 0 8
  • 分析目的 消费金融产品规则复杂; 仅仅依赖交互和文案不能充分教育用户,用户教育成本高; 客服是用户寻求帮助和了解产...
    SherryXie阅读 2,095评论 0 1