ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

简单了解promise

2022-05-11 15:34:03  阅读:182  来源: 互联网

标签:异步 状态 了解 Promise 简单 promise 操作 pending


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

 

 

 

 

 

标签:异步,状态,了解,Promise,简单,promise,操作,pending
来源: https://www.cnblogs.com/mhyweb/p/16258097.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有