美文网首页
笔记:promise,fetch/require,async/a

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

作者: 南京1865 | 来源:发表于2018-05-26 14:21 被阅读0次

    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,fetch/require,async/a

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