首页 > 其他分享 >Promise 基本了解和使用

Promise 基本了解和使用

时间:2023-02-08 02:33:23浏览次数:44  
标签:基本 function resolve console res 了解 Promise reject

所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。

Promise有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。
Promise的状态不受外界影响。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。
Promise的状态一旦状态改变,就不会再变。如果改变已经发生了,你再对Promise对象添加回调函数,也会立即得到这个结果。

Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。
Promise.all()方法只适合所有异步操作都成功的情况,如果有一个操作失败,就无法满足要求。

const p = Promise.all([p1, p2, p3]);
只有p1、p2、p3的状态都变成fulfilled,p的状态才会变成fulfilled,此时p1、p2、p3的返回值组成一个数组,传递给p的回调函数。
只要p1、p2、p3之中有一个被rejected,p的状态就变成rejected,此时第一个被reject的实例的返回值,会传递给p的回调函数。

  new Promise(function (resolve, reject) {
    resolve('success1')
  }).then(function (res) {
    console.log(11, res)
    return new Promise(function (resolve, reject) {
      resolve('success2')
    })
  }).then(function (res) {
    console.log(22, res)
    return new Promise(function (resolve, reject) {
      // resolve('success3')
      reject('fail') 
      // 下面3 4都不会继续执行,promise的状态一旦确定,不在更改
      // 即使下面再抛出reject,也不会执行,只会以第一个reject为主
    })
  }).then(function (res) {
    console.log(33, res)
    return new Promise(function (resolve, reject) {
      resolve('success4')
    })
  }).then(function (res) {
    console.log(44, res)
  }).catch(function (error) {
    console.log(error)
  })

详细讲解 https://es6.ruanyifeng.com/#docs/promise

标签:基本,function,resolve,console,res,了解,Promise,reject
From: https://www.cnblogs.com/lixiaotian/p/17100320.html

相关文章

  • Python 4.变量与基本数据类型
    一、什么是变量? 变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等二、为什么要有变量? 为了让计算机能够像人一样去记忆事物的某种......
  • 10.13了解程序运行方式的必要性
    通过对C语言源代码和汇编语言源代码进行比较,想必大家对程序是怎样跑起来的”又有了更深的理解。而且,从汇编语言源代码中获得的知识,在某些情况下对查找bug的原因也是有帮......
  • 软件测试|一篇文章教你SQL与NoSQL、数据库重要概念、SQL的基本语句
    SQL与NoSQL、数据库重要概念、SQL的基本语句SQL与NoSQL数据库服务端可以服务多种类型的客户端客户端可以是自己开发的,也可以是python代码编写的,也可以是其他编程语言编写的S......
  • 软件测试|Python神器logging,你真的了解吗?
    logging是python标准模块,用于记录和处理程序中的日志。功能很强大,官方文档很详细,网上也有大量的说明和教程,但是对很多初次接触的同学来说,存在一些障碍。一是因为标准库文......
  • GStreamer系列 - 基本介绍
    什么是Gstreamer?Gstreamer是一个支持Windows,Linux,Android,iOS的跨平台的多媒体框架,应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果。......
  • GStreamer基础教程02 - 基本概念
    摘要在 Gstreamer基础教程01-HelloWorld中,我们介绍了如何快速的通过一个字符串创建一个简单的pipeline。为了能够更好的控制pipline中的element,我们需要单独创建eleme......
  • iOS/OS X内存管理(一):基本概念与原理
    在Objective-C的内存管理中,其实就是引用计数(referencecount)的管理。内存管理就是在程序需要时程序员分配一段内存空间,而当使用完之后将它释放。如果程序员对内存资源使用......
  • httprunner 基本使用
    一、Httprunner简单介绍httprunner是一个面向https协议的接口自动化测试框架。它只需要维护一份json,yaml文件那么就可以实现自动化测试,性能测试,线上监控,持续集成。HttpRu......
  • linux基本功系列之du命令实战
    前言:smile:大家好,我是沐风晓月,双一流本科,计算机专业,一起学习,努力成长!......
  • 灵活又简便,效率提升快,来了解下自定义表单工具!
    选择低代码开发平台,需要看准服务商、产品、服务保障等条件。只有认准专业的开发平台服务商,才能拥有一整套完善的低代码平台解决方案,才能帮助企业最大限度提升办公协作效率,......