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的语法糖

 

 

 

 

 

posted on 2022-05-11 15:22  兮宇  阅读(61)  评论(0编辑  收藏  举报