首页 > 其他分享 >简单了解Promise

简单了解Promise

时间:2024-03-13 18:03:15浏览次数:23  
标签:函数 了解 Promise 数组 简单 序列 回调 pending

回调地狱:回调地狱是指回调函数中嵌套回调函数的情况。回调函数是为了实现代码顺序执行而出现的一种操作,会造成代码可读性差,后期难维护。

一、Promise是什么?

Promise是最早由社区提出和实现的一种解决异步编程的方案,比其他传统的解决方案(回调函数和事件)更合理更强大。

ES6将其写进了语言标准,统一了用法,原生提供了Promise对象。

ES6规定,Promise对象是一个构造函数,用来生成Promise实例。

二、Promise是为了解决什么问题而产生的?

promise是为了解决异步处理回调金字塔问题而产生的。

三、Promise的两个特点

1.promise是一种状态机:pending(进行中)、fulfilled(已成功)和rejected(已失败),只有异步处理操作的结果才可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。

2.Promise的状态一旦改变就不会再变,任何时候都可以得到这个结果,状态不可以逆,只能由pending变成fulfilled或者由pending变成rejected。

四、Promise的三个缺点

1.无法取消Promise,一旦新建他就会立即执行,无法中途取消

2.如果不设置回调函数,Promise内部抛出的错误,不会反映到外部

3.当处于pending状态时,无法得知目前进展到哪一阶段,是刚刚开始还是即将完成

五、Promise在哪存放成功回调序列和失败回调序列?

1.onResolvedCallbacks成功后要执行的回调序列是一个数组

2.onRejectedCallbacks失败后要执行的回调序列是一个数组

以上两个数组存放在Promise创建实例时给Promise这个类传的函数中,默认都是空数组。

每次实例then的时候传入onFulfilled成功回调onRejected失败回调,如果此时的状态是pending则将onFulfilled和onRejected push到对应的成功回调序列数组和失败回调序列数组中,如果此时的状态是fulfilled则onFulfilled立即执行,

上述序列中的回调函数执行的时候是有顺序的,即按照顺序依次执行。

标签:函数,了解,Promise,数组,简单,序列,回调,pending
From: https://blog.csdn.net/qq_51679817/article/details/136687251

相关文章

  • L2-033 简单计算器(Python)
    作者 陈越单位 浙江大学本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示,计算器由两个堆栈组成,一个堆栈 S1​ 存放数字,另一个堆栈 S2​ 存放运算符。计算器的最下方有一个等号键,每次按下这个键,计算器就执行以下操作:从 S1​ 中弹......
  • Rust GUI库 egui 的简单应用
    目录简介简单示例创建项目界面设计切换主题自定义字体自定义图标经典布局定义导航变量实现导航界面实现导航逻辑实现主框架布局调试运行参考资料简介egui(发音为“e-gooey”)是一个简单、快速且高度可移植的Rust即时模式GUI库,跨平台、Rust原生,适合一些小工具和游戏引擎GUI:文......
  • Spring 中不得不了解的姿势
    说明本文非原创,我只是进行了整理以及做了一些改动,仅供学习,若需进行商业使用,请联系原作者原作者:苏三原文链接:苏三说技术:Spring系列SpringIOC本章节解读的流程为Spring容器初始化的前期准备工作Spring容器初始化的入口refresh方法的主要流程解析xml配置文件生成BeanDef......
  • Promise对象的特点
    Promise对象的特点·:对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)fulfilled(已成功)rejected(已失败)只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。·一旦状态改变,就不会再变,任何时候都可以得到这个结果。......
  • 【Javascript】 Promise 对象(一)
    Promise的含义Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Promise对象。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操......
  • 简单介绍一下 Sora
    Sora三位负责人BillPeebles,TimBrooks,AdityaRamesh的专访原视频地址:https://www.youtube.com/watch?v=Srh1lut4Q2A简单解释一下Sora的工作原理这几年面世的生成模型很多,包括GPT等语言模型,DALL·E等图像生成模型,而Sora是视频生成模型,通过大量的视频数据,学习生成逼真......
  • Python学习笔记-Flask实现简单的投票程序
    1.导入flask包 fromflaskimportFlask,jsonify,abort,make_response,request,render_template2.初始化Flask应用:app=Flask(__name__)3. 定义投票种类data=[{'id':0,'name':'劳动节','num':0},{'id':1,'name&#......
  • 万字带你了解ChatGLM
    本文分享自华为云社区《【云驻共创】华为云之昇思MindSpore大模型专题(第二期)-第一课:ChatGLM》,作者:愚公搬代码。前言1.昇思MindSpore昇思MindSpore是华为公司推出的一款全场景AI计算框架。它提供了自动微分、分布式训练和推理、模型部署等功能,支持多种硬件平台,包括CPU、GPU和As......
  • 【图像超分】论文复现:新手入门!Pytorch实现SRCNN,数据预处理、模型训练、测试、评估全流
    文章目录前言1.准备数据集和数据预处理1.1数据集选择1.2数据预处理1.3评估指标PSNR和SSIM1.3.1PSNR1.3.2SSIM2.定义网络结构3.设置参数并训练模型3.1参数设置3.2模型训练4.测试训练好的模型5.用训练好的SRCNN模型超分自己的图像数据6.其他补充6.1特征图......
  • 7-18 两个数的简单计算器
    本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。输入格式:输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。输出格式:......