promise是什么:

JavaScript中存在很多异步操作, Promise将异步操作队列化,按照期望的顺序执行,返回 符合预期的结果。可以通过链式调用多个 Promise达到我们的目的。 Promise 在各种开源库中已经实现,现在标准化后被浏览器默认支持。 Promise 是一个拥有then方法的对象或函数

为什么会有promise?

为了避免界面冻结(任务) 异步回调的问题: 之前处理异步是通过纯粹的回调函数的形式进行处理 很容易进入到回调地狱中,剥夺了函数return的能力 问题可以解决,但是难以读懂,维护困难 稍有不慎就会踏入回调地狱 - 嵌套层次深,不好维护

promise的优点 并未剥夺函数return的能力,因此无需层层传递callback,进行回调获取数据 代码风格,容易理解,便于维护 多个异步等待合并便于解决 简化编程,让代码逻辑更加清晰。

Promise 可以理解为承诺,就像我们去KFC 点餐服务员给我们取餐票,这就是承诺。如果 餐做好了叫我们这就是成功,如果没有办法给 我们做出食物这就是拒绝。

基础知识点补充:

promise有三个状态:

1、pending[待定]初始状态

2、fulfilled[实现]操作成功

3、rejected[被否决]操作失败

当promise状态发生改变,就会触发then()里的响应函数处理后续步骤;一个Promise 只能成功或失败一次,状态无法改变且产生后不可逆. (成功和失败同时存在时谁在前谁产生作用)

总结: promise状态是单向的,不可逆的,不可撤销的

resolve作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved) 在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;

reject作用是,将Promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected, 在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。

基本语法

(1) Promise.then的基本语法:

一个 promise 必须有一个then方法用于处理状态改变 后面的then就是对前面返回的Promise的处理

(2)Promise 单一状态与状态中转

(3) Promise的多种错误检测与catch的使用

(4) Promise.resolve

  Promise.reject

 Promise. all

 Promise. allSettled

Promise的语法糖

最新文章

  1. (DFS、bitset)AOJ-0525 Osenbei
  2. 命令与文件的查询 which whereis locate find
  3. Linux磁盘管理之日志文件系统和非日志文件系统08
  4. Maven2-profile多环境配置
  5. Jquery 获取各种高度、宽度【整理】
  6. wuzhicms短信API 实例调用
  7. poj 3294 Life Forms
  8. PS:改装店收的是友情价,包安装十五个毛主席。
  9. Entity Framewor中的 Migration
  10. ubuntu安装Java jdk1.7.0
  11. 如何在sublime中使用sass
  12. Command "python setup.py egg_info" failed with error code 10
  13. JS中数组的常用方法
  14. elementUI 时间格式化(一般方法)
  15. maven编译或者打包web项目显示“软件包 javax.servlet.http 不存在"
  16. 关于 使用python向qq好友发送消息(对爬虫的作用----当程序执行完毕或者报错无限给自己qq发送消息,直到关闭)
  17. mean
  18. Java入门系列(十二)Java反射
  19. 六、springboot(三)配置双数据源
  20. PAT 1074 宇宙无敌加法器(20)(代码+思路+测试点分析)

热门文章

  1. potoshop制作一寸照片
  2. Codeforces 1208F Bits And Pieces
  3. java post格式发送application/x-www-form-urlencoded
  4. 根据pid定时监控CPU使用率和内存使用率并输出到文件 (windows和linux跨平台可用)
  5. (K8s学习笔记三)创建Namespace
  6. linux下第三方库的配置和链接——以opencv为例
  7. goland使用go mod模式
  8. JDBC之Statement
  9. ubuntu20.0.4 安装influxdb
  10. Java方法之递归详解【重点】