首页 > 其他分享 >Promise学习

Promise学习

时间:2023-05-05 11:36:06浏览次数:39  
标签:resolve 结果 对象 学习 promise reject Promise

1. 理解

1)Promise 是一门新技术(ES6规范)

2)Promise是JS中进行异步编程的新解决方案

 

2. 具体表达

1)从语法上说:Promise是一个构造函数,

2)从功能上说:Promise对象用来封装一个异步操作并可以获取其成功/失败的结果值

支持链式调用,解决回调地狱问题,回调函数中多次嵌套。

 

3. Promise的状态改变。PromiseState 是内置属性

1)pending变为resolve / fullfilled

2)pending变为reject

只有两种状态改变,且promise对象只能改变一次,无论变为成功和失败都会有一个结果数据。(试验过程中是一个值)

 

4. Promise 对象的值

保存异步任务成功或失败的结果,可以由resolve和reject函数进行

 

 Promise中传入的参数 (resolve, reject) 称为executor执行器,执行器会在Promise内部立即同步调用,异步操作在执行器中执行。

catch可以指定失败时候的回调。catch内部也是then方法实现的。

 

常用方法Promise.resolve() 如果传入一个非Promise对象,则状态为resolve,并且result为传入的值,如果为Promise对象,则状态值为Promise的对象           Promise.reject() 传入非Promise,以及结果 状态都是reject,

失败结果可以是传入的成功Promise对象。

 

Promise.all方法() => {} 传入n个promise的数组,返回一个新的promise,只有所有的promise都成功才成功,只要有一个失败了就直接失败。

如果所有promise成功,返回结果为成功,且结果为所有数组成功的结果数组,如果失败,为失败这个promise的结果。

 

Promise.race方法,传入n个promise的数组,返回一个新的promise。第一个完成的promise的结果状态就是最终的结果状态

 

throw 抛出错误可以改变promise对象的状态。 Promise中不管先声明then方法还是 先 改变promise的状态,都是等状态改变之后,再执行then的回调函数。promise不管同步异步都是支持的。

 

调用then方法,如果抛出错误,则执行then方法返回的promise 为reject, 如果 返回非promise对象,返回结果是fulfill即resolve(),如果返回promise对象,根据promise对象来决定。

 

5. 中断Promise的执行链,可以返回一个pandding状态的执行链才行。

 

标签:resolve,结果,对象,学习,promise,reject,Promise
From: https://www.cnblogs.com/zzlback/p/17372216.html

相关文章

  • httprunner 4.x学习 - 2.测试用例结构(testcase)
    前言httprunner4.x版本,YAML/JSON格式用例(testcase)结构延续了之前的config和teststeps两个部分config配置部分config部分示例config:name:"requestmethodstestcasewithfunctions"variables:foo1:config_bar1foo2:config_bar2......
  • 【VBA】树控件TreeView的学习(一)
    哈喽,手机边亲爱的你还好吗?我是默默给大家分享Access知识的will。大家2022年快乐,从今天开始我们来讲一下树控件。树控件在我们的开发中是经常用的到的控件也是一个重点,我会从最简单的讲起,一点点,一点点的加上难度,最后我们把BOM挂到树上,顺便讲一下BOM。我会先发一篇文章再出一个视频。......
  • 【Java学习笔记】Maven项目+Junit5单元测试
    1.Maven简介;Maven概念:仓库、坐标Maven坐标:描述仓库中资源的位置Maven坐标查找:https://mvnrepository.com/Maven坐标组成:-groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.Google)-artifactId:定义当前Maven项目名称(通常是模块名称)-version:定义当前Maven项目......
  • OpenResty学习笔记03:深入体验WAF
    一.WAF概况  二.Lua介绍  三.文件说明  四.引用关系  五.测试&体验  六.本篇总结  ......
  • [Python]-sklearn模块-机器学习Python入门《Python机器学习手册》-05-处理分类数据
    《Python机器学习手册——从数据预处理到深度学习》这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习中python常用的这些库有更深入的理解,在应用中也能更为熟练。以下是根据书上的代码进行实操,注释......
  • 【动手学深度学习】第十二章笔记:异步计算、数据并行
    为了更好的阅读体验,请点击这里12.1编译器和解释器原书主要关注的是命令式编程(imperativeprogramming)。Python是一种解释性语言,因此没有编译器给代码优化,代码会跑得很慢。12.1.1符号式编程考虑另一种选择符号式编程(symbolicprogramming),即代码通常只在完全定义了过程之后才......
  • 【C++学习笔记】类的长度
    //空类长度是1由于可以初始化,所以必须有一个长度1class空类{}//一个函数长度是1其实函数不占长度,多个函数,长度还是为1,为了初始化,必须有一个长度。class一个函数{voidTest();}//一个虚函数类由于有一个虚函数表,所以必须长度为4,多个虚函数,也是4class一个虚函数类......
  • 基于深度学习的水果检测与识别系统(Python界面版,YOLOv5实现)
    摘要:本博文介绍了一种基于深度学习的水果检测与识别系统,使用YOLOv5算法对常见水果进行检测和识别,实现对图片、视频和实时视频中的水果进行准确识别。博文详细阐述了算法原理,同时提供Python实现代码、训练数据集,以及基于PyQt的UI界面。通过YOLOv5实现对图像中存在的多个水果目标......
  • 机器学习——线性回归
    文章目录1.代价函数(costfunction)1.1代价函数图像2.gradientdescent(梯度下降)2.1正导数:positivederivative2.2负导数:negativederivatvie2.3线性回归的梯度下降(gradientdescentoflinearregression)3.矩阵的介绍4.多元线性回归和其梯度下降4.1多元线性回归4.2多元线性回......
  • 机器学习中的batch_size
    batch_size:表示单次传递给程序用以训练的数据(样本)个数。比如我们的训练集有1000个数据。这是如果我们设置batch_size=100,那么程序首先会用数据集中的前100个参数,即第1-100个数据来训练模型。当训练完成后更新权重,再使用第101-200的个数据训练,直至第十次使用完训练集中的1000个数据......