Promise初探

promise是异步编程的一种解决方案,Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和Rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态,并且状态一旦改变,就不会再变。
  • 使用promise简单场景,比如在AJAX请求中,需要在每个成功的回调中不断再请求新的内容就要在回调中不断的嵌套一坨代码,通过promise可以将代码写的非常清晰。
  • 以一个嵌套的setTimeout为例
  • 用promise改写
  • Promise.all()
  • 只要传入的对象中有一个被rejected,返回的状态就变成rejected,此时第一个被reject的实例的返回值,会传递给回调函数
  • Promise.all()方法接受一个参数,这个参数是一个可以监控的promises迭代(例如数组),而且仅当迭代中每个promise resolved后,返回一个resolved promise。当迭代中的每个promise都是fulfilled,返回的promise是fulfilled,
  • Promise.race()
  • 只要one、two、three之中有一个实例率先改变状态,返回的状态就跟着改变。率先改变的 Promise 实例的返回值,就传递给回调函数
  • 该方法生成并返回一个新的promise对象,参数promise 数组中的任何一个promise对象如果变为resolve或者reject的话, 该函数就会返回,并使用这个promise对象的值进行resolve或者reject。
传入Promise.race()的promises就是一场比赛,看哪个promise首先处理。如果处理的第一个promise是fulfilled,那么返回的promise也是fulfilled;如果处理的第一个promise是rejected,那么返回的promise是rejected。

Promise is a promise相关推荐

  1. Promise:Promise.all、Promise.race、Promise.any的用法及区别

    在项目开发过程中经常需要通过异步编程来实现功能,此时就需要我们了解Promise. Promise Promise 是异步编程的一种解决方案,比传统的解决方案回调函数和事件更合理和更强大. 有了Pro ...

  2. 【ES6】什么是Promise?解析Promise的基本用法

    Promise介绍 Promise 是异步编程的一种解决方案,比传统的解决方案(回调函数和事件)更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise ...

  3. 如何将小程序内置非promise API转换为promise对象(风袖小程序的学习)

    非常重要,便于项目大局观,使用es7的 async和await 如何将小程序内置非promise API转换为promise 这里是我封装的一个wx.request函数如何将wx.request转换成 ...

  4. promise 读书笔记,promise核心方法(手写promise)

    promise 术语 1 promise 是一个有then方法的对象或者函数,行为遵循PromiseA+规范 2 thenable 是一个有then方法的函数或者对象 3 value promise ...

  5. 手撕promise.all以及promise.race

    promise.all实现 //实现思路 // 1.Promise.all()返回的肯定是一个promise对象所以可以直接写一个return new Promise((resolve,reject) ...

  6. Promise.all、Promise.allSettled、Promise.any、Promise.race

    Promise的实例方法拓展 Promise.all() :方法用于将多个 Promise 实例,包装成一个新的 Promise 实例. Promise.allSettled():用来确定一组异步操作 ...

  7. 理解promise、promise.all、promise.race

    文章目录 promise promise.all promise.race 注意 总结 promise Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息. Promise 对象有以 ...

  8. Promise: 手写Promise

    前言 ES6里的Promise是个原理性蛮复杂但是使用起来很简单的异步解决方案.我们有必要系统.深入的学习Promise的使用规则,并能根据规则手动实现一个完整的Promise,下面我们就根据官方的规 ...

  9. Promise.all、Promise.race、Promise.allSettled、Promise.any区别

    目录 1.Promise.all 2.Promise.race 3.Promise.allSettled 4.Promise.any 1.Promise.all Promise.all()方法用于将多 ...

  10. Promise.all()、Promise.allSettled()、Promise.any()、Promise.race()用法与区别

    概述 Promise 对象用于表示一个异步操作的最终完成 (或失败)及其结果值 一个 Promise 必然处于以下几种状态之一: 待定(pending): 初始状态,既没有被兑现,也没有被拒绝. 已兑 ...

最新文章

  1. Java IO 流 学习 总结
  2. python列表的排序方法_pythonlist排序的两种方法及实例
  3. Apache 2,4版本 编译与安装 RedHat enterprises 6.2
  4. Golang 入门笔记(二)上
  5. 【bzoj 1754】【POJ - 2389 】Bull Math (高精度运算)
  6. insert into select 优化_数据库优化总结
  7. java 多态判断非空_Java核心技术(四):继承
  8. 深入研究 C++中的 STL Deque 容器
  9. php中split的使用,php中常用字符串的用法总结 - split
  10. Kaldi AMI数据集脚本学习4---train_mono.sh
  11. linux驱动开发(十)——misc杂散设备
  12. 0-1背包问题-c语言实现
  13. 耦合电感元件的相关概念
  14. qduoj 分辣条1 (搜索+剪枝)
  15. 虚拟机安装python3_虚拟机如何安装python
  16. Espresso指南一(Espresso下载、安装、设置、基础、速查表)
  17. 机器学习——决策树+随机森林
  18. realmeq参数配置详情_realmeq参数配置-realmeq手机性能规格详情
  19. WC .exe C语言实现
  20. 使用阿里云的短信服务发送短信

热门文章

  1. python下载歌曲教程视频_实现python批量下载网易云音乐的免费音乐
  2. 2021蓝桥杯B组 第I题杨辉三角形
  3. #define定义宏常量和宏函数
  4. fflush函数使用
  5. 小程序开发:完整发布上线流程
  6. DB 查询分析器 方便地创建DB2自定义函数
  7. 鲁迅文章的语言特色浅谈
  8. 【计算几何】计算几何复习
  9. uva10635Prince and Princess(LIS)
  10. 关于64位整型int64_t