网站LOGO
L S Y 小窝
页面加载中
12月6日
网站LOGO L S Y 小窝
菜单
  • L S Y 小窝
    用户的头像
    首次访问
    上次留言
    累计留言
    我的等级
    我的角色
    打赏二维码
    打赏博主
    ES-6 Promise的链式调用和all方法的使用
    点击复制本页地址
    微信扫一扫
    文章二维码
    文章图片 文章标题
    创建时间
  • 一 言
    确认删除此评论么? 确认
  • 本弹窗介绍内容来自,本网站不对其中内容负责。
    按住ctrl可打开默认菜单

    ES-6 Promise的链式调用和all方法的使用

    yuan · 原创 ·
    编程 · promise
    共 1197 字 · 约 1 分钟 · 12137
    本文最后更新于2020年04月05日,已经过了1339天没有更新,若内容或图片失效,请留言反馈

    ■我们在看Promise的流程图时, 发 现无论是then还是catch都可以返回一个Promise对象。

    ■所以,我们的代码其实是可以进行链式调用的:

    ■这里我们直接通过Promise包装了一下新的数据,将Promise对象返回了

    • Promise.resovle() : 将数据包装成Promise对象,并且在内部回调resolve()函数
    • Promise.reject():将数据包装成Promise对象,并且在内部回调reject()函数
    请输入图片描述请输入图片描述

    Promise all方法的使用

    ■Promise.all可以将多个Promise实例包装成一个新的Promise实例

    • 成功的时候返回的是一个结果数组
    • 而失败的时候则返回最先被reject失败状态的值

    ■Promse.all在处理多个异步处理时非常有用

    • 比如说一个页面上需要等两个或多个ajax的数据回来以后才正常显示
    • 当有一个请求失败时,调用catch(),结束之后所有请求
        Promise.all([
            //第一个请求
            new Promise((resolve,reject) => {
                setTimeout(() => {
                    resolve({name:'请求一',data:'aaa'});
                },2000)
            }),
            
            //第二个请求
            new Promise((resolve,reject) => {
                setTimeout(() => {
                    resolve({name:'请求二',data:'bbb'});
                },1000)
            }),
            
        ]).then(res => {
            //成功时res返回的是一个结果数组
            console.log(res)
        }).catch(err => {
            //失败时返回最先被reject失败状态的值
            console.log("err message");
        })
    

    控制台输出结果

    (2) [{…}, {…}]
      0: {name: "请求一", data: "aaa"}
      1: {name: "请求二", data: "bbb"}
      length: 2
      __proto__: Array(0)
    声明:本文由 yuan(博主)原创,依据 CC-BY-NC-SA 4.0 许可协议 授权,转载请注明出处。

    还没有人喜爱这篇文章呢

    此页面评论区已关闭
    博客logo L S Y 小窝 51统计 百度统计
    MOEICP 萌ICP备20232210号 ICP 赣ICP备20003060号 又拍云 本站由又拍云提供CDN加速/云存储服务

    🕛

    本站已运行 3 年 270 天 6 小时 42 分

    🌳

    自豪地使用 Typecho 建站,并搭配 MyLife 主题
    L S Y 小窝. © 2020 ~ 2023.
    网站logo

    L S Y 小窝
     
     
     
     
    壁纸