首页 > 其他分享 >对promise 的理解

对promise 的理解

时间:2023-10-21 18:45:59浏览次数:25  
标签:函数 理解 参数 promise reject Promise 回调

对于Promise的.then()方法,其实它接受两个参数。第一个参数是处理resolve状态(即成功状态)的回调函数,第二个参数是处理reject状态(即失败状态)的回调函数。也就是说,如果你提供了.then()的第二个参数,那么它将在Promise被rejected时执行。

然而,一般推荐使用.catch()处理Promise的错误状态,而非.then()的第二个参数。使用.catch()的好处是,它不仅可以捕捉到它之前链式调用中的所有错误,而且排查问题时也更为直观。

这里有一个例子可以帮助你理解:

let promise = new Promise(function(resolve, reject) {
  // 模拟一个错误
  reject("Error!");
});

promise
  .then(
    value => {
      // 成功的回调函数
      console.log("This won't run because the Promise is rejected.");
    }, 
    reason => {
      // 失败的回调函数
      console.log("Something went wrong: ", reason);
    }
  );

在这个例子中,我们创建了一个立即reject的Promise。.then()方法的第一个参数将不会被执行,因为Promise没有被resolve。第二个参数会被执行因为Promise被reject了,它将打印出"Something went wrong: Error!"。

需要注意的是,如果.then()中的第一个回调函数(即处理resolve状态的回调函数)在执行过程中出现错误,那么这个错误是无法被.then()中的第二个回调函数捕获的,但是可以被随后的.catch()捕获。

标签:函数,理解,参数,promise,reject,Promise,回调
From: https://www.cnblogs.com/coodeshark/p/17779341.html

相关文章

  • OSPF组播地址理解
    OSPF(OpenShortestPathFirst)使用组播地址来进行邻居发现和LSA(LinkStateAdvertisement)更新的通信。OSPF的组播地址是224.0.0.5。以下是对OSPF组播地址的详细说明及其工作过程:组播地址:IPv4组播地址用于将数据报发送到一个组中的所有成员。OSPF使用组播地址224.0.0.5作为邻居发现......
  • 深入理解linux文件
    一、linux的文件存储假如有一个用户在linux系统中编辑了一个文件,编辑完内容后,关闭编辑器时会问用户改如何命名这个文件,设置完名称之后会选择一个目录将该文件保存到指定目录下,在这个例子中包含了linux系统中与文件相关的三个组成部分数据:就是文件的内容,保存在一个叫data(数据块)......
  • 深入理解 Docker:探索容器技术的核心概念
    在工作中,我们掌握了微服务的服务注册与发现(nacos)、配置中心(nacos)、远程服务调用(feign)、网关(gateway),同时借助Idea编译工具多次完成本地服务启动、部署和验证。但是我们假想下面场景:开发人员A写好的代码-->开发人员小王的电脑上运行,小周必须保证跟小王一样的系统环境(JDK/MyS......
  • 深入理解 Python 虚拟机:进程、线程和协程
    深入理解Python虚拟机:进程、线程和协程在本篇文章当中深入分析在Python当中进程、线程和协程的区别,这三个概念会让人非常迷惑。如果没有深入了解这三者的实现原理,只是看一些文字说明,也很难理解。在本篇文章当中我们将通过分析部分源代码来详细分析一下这三者根本的区别是什......
  • 问题(小程序):Uncaught (in promise) thirdScriptError {"errMsg":"redirectTo:fail can
    这个是跳转出现了问题,点击之后跳转不过去。解决办法:换一种跳转方式。方式一:wx.redirectTo:关闭当前所在页面,再跳转到指定的非TabBar页面。不受页面层数限制。方式二:wx.navigateTo:不关闭当前所在页面,跳转到指定的非TabBar页面,注意页面路径限制是五层。方式三:wx.switchTab:只可以......
  • TCP/IP--理解TCP三次握手和四次挥手
    本篇结构:前言TCP报文首部格式三次握手四次挥手wireshark抓包三次握手wireshark抓包四次挥手一、前言比较郁闷,明明年纪不大,记性却出奇显出老态,不久前学习过的知识,再回头看发现基本已经忘却。可能也是学得不扎实,不深入的原因吧。抛开这些无关的念头,少年,再来深入理解一下吧,要知道......
  • Image中的transformation理解【swt.snippet】
    /********************************************************************************Copyright(c)2000,2005IBMCorporationandothers.*Allrightsreserved.Thisprogramandtheaccompanyingmaterials*aremadeavailableunderthetermsoftheEclip......
  • 一道理解题意的题目
    这道题目的意思是是小数部分大于0.5直接进位,小于0.5直接舍弃,等于0.5看整数部分是奇数还是偶数(重点:舍弃直接看小数点后的第一位数字因为保留到整数,而不是从最后一位开始舍弃;有效数字的概念,如0.500就没有有效数字,0.501就有有效数字)然后这一道题还有非常骚的读入方法#include<bits......
  • python脚本中应用多线程和多进程理解
    脚本内容因为要读取mongo某个全表数据(亿级别),有个字段有索引且是一堆多的关系从其他表读取所有这个字段(十万级别),再读取大表因为数据量大所以写个测试,从中拿出几条去大表查询(每次读到十万级别数据)多线程和多进程的影响不使用多线/进程file=open('test2.csv','w')content......
  • 深入理解 Netty FastThreadLocal
    作者:vivo互联网服务器团队-JiangZhu本文以线上诡异问题为切入点,通过对比JDKThreadLocal和NettyFastThreadLocal实现逻辑以及优缺点,并深入解读源码,由浅入深理解NettyFastThreadLocal。一、前言最近在学习Netty相关的知识,在看到NettyFastThreadLocal章节中,回想起一起线......