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