自我简单认知Promise

Promise用法

一个函数参数:new Promise(function(resolve, reject))
每个Promise构造函数可接受一个参数,参数为一个函数,函数又有两个参数resolve和reject,分别表示为成功之后的回调函数和失败之后的回调函数。

const promise = new Promise ((resolve, rereject) => {
  if (/* 异步操作成功 */){
    return resolve(value);
  } else {
    return reject(error);
  }
})
promise.then((value) => {
  // success
}, (error) => {
  // failure
});

ES6将某一件可能发生异步操作的事情, 分成两个阶段: unsettled和settled
在这里插入图片描述

  • unsettled: 未决阶段, 表示事情还在进行前期的处理, 并没有发生通向结果的那件事
  • settled: 已决阶段, 事情已经有了一个结果, 不管这个结果是好是坏, 整件事情无法逆转。

当异步操作执行成功后,会将异步操作结果作为参数传入 resolve 函数并执行,此时 Promise对象状态从 pending 变为 fulfilled ;
失败就会将异步操作的错误作为参数传入 reject 函数并执行,此时 Promise对象状态从pending 变为 rejected

两个状态转换:pending>fulfilled, pending>rejected
从两种状态转换可以看出有三种状态,挂起状态pending,成功状态fulfilled,失败状态rejected。状态改变后就不会再被改变。

三个原型方法:.then(), .catch(), .finally()

  • then: 创建一个后续处理函数, 当Promise为resolved状态时运行该函数.
  • finally: 创建一个后续处理参数(无参),当Promise为settled时运行该函数。
  • catch: 创建一个后续处理函数,当Promise为rejected状态时运行该函数。
const promise = new Promise((resolve, reject) => {
    resolve(1);
})
const promise2 = promise.then(res => res * 2);
promise2.then(res => {
    console.log(res);
})
const promise = Promise((resolve, reject) => {
    resolve();
})

promise.finally(() => {
    console.log('helloworld');
})


.finally()方法,无论结局如何都会执行的回调函数。

    const proms = [];
    for(let i = 0; i < 10; i ++) {
        proms.push(new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve(i);
            }, 3000)
        }))
    }
    Promise.all(proms).then(res => {
        console.log('全部请求完成',res);
    }).catch(err => {
        console.log(err);
    })

四个普通方法:.all(iterable), .race(iterable), .resolve(value), .reject(value)

  • .all()方法iterable参数必须是一个可迭代对象。等所有传入的参数状态由pending>fulfilled时,执行状态为resolve的回调函数.并且then() 方法的第一个函数参数。如果iterable中有一个状态变为rejected状态,会立马执行reject的回调函数。
  • .race()方法iterable参数必须是一个可迭代对象。第一个状态由pending>rejected或pending>fulfilled时触发,触发对应的resolve或reject函数,剩下的可迭代项继续执行,但执行结束后不会执行对应状态的回调函数。
  • .resolve()方法,用于返回一个状态为成功(fulfilled)状态的Promise对象。
  • .rejecct()方法,用于返回一个状态为失败(rejected)状态的Promise对象。
内容概要:本文档《Docker 新手入门指南》详细介绍Docker这一开源容器化平台,旨在帮助新手理解并掌握Docker的核心概念和基本操作。文中首先解释了Docker的概念及其相对于传统虚拟机的优势,如更快的启动速度、更低的资源占用和更好的隔离性。接着,文档提供了详细的安装步骤,包括不同操作系统下的安装方法以及针对国内用户的镜像加速配置。随后,文章深入讲解了镜像管理和容器操作的基础命令,如拉取镜像、运行容器等。进一步地,文档介绍了使用Dockerfile构建自定义镜像、实现数据持久化、进行端口映射以及利用Docker Compose管理多容器应用等高级技巧。最后,给出了一些学习建议和注意事项,鼓励读者动手实验并关注安全性。 适合人群:适合对容器技术感兴趣的初学者,尤其是有一定Linux基础或打算深入了解Docker的开发人员。 使用场景及目标:①帮助读者快速上手Docker,掌握从安装到实际操作的一系列技能;②通过实例演示,如构建Python Web服务、部署WordPress和搭建Jenkins环境,让读者能够将所学应用于实际项目中;③强调容器化的优势,如提高部署效率、解决环境差异问题。 阅读建议:建议读者跟随文档逐步操作,亲身体验每个步骤,同时参考官方文档和社区资源,不断实践以巩固所学知识。特别注意安全性和资源管理方面的提示,确保容器环境的安全稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值