Promise回调分两种方法,then成功,catch失败

let promise = new Promise(function(resolve, reject){
resolve('第一次成功')
}) promise.then(function(val) {
// 两种方法意思都代表报错,【中断下一步,直接报错】
  //第一种方法
throw new error()
  // 第二种方法
  return Promise.reject()
}).then(function(val) {
console.log('被跳过的方法')
}).catch(function(val) {
console.log('返回失败')
})

第三种方法有点粗暴,但也是目前看来可解决的可行办法

let promise = new Promise(function(resolve, reject){
resolve('第一次成功')
}) promise.then(function(val) {
  //第三种方法
return new Promise(()=>{})
}).catch(function(val) {
console.log('返回失败')
}).then(function(val) {
console.log('被跳过的方法')
})

前两种如果链式调用最后以失败结尾的话是可行的,如果以成功结尾就会出问题,第三种方法是直接阻断性,讲进程转到新的Promise

目前只想到三种方法,但本人认为这不是最好的解决办法,后续如果后小伙伴发现更好的办法可以评论哦

Promise链式调用 终止或取消的更多相关文章

  1. 使用Promise链式调用解决多个异步回调的问题

    使用Promise链式调用解决多个异步回调的问题 比如我们平常经常遇到的一种情况: 网站中需要先获取用户名,然后再根据用户名去获取用户信息.这里获取用户名getUserName()和获取用户信息get ...

  2. promise链式调用的应用

    then在链式调用时,会等前一个then或者函数执行完毕,返回状态,才会执行回调函数. (1)代码顺序执行,第一步调用了函数cook ,cook执行返回了一个promise,promise返回的是成功 ...

  3. 中断或取消Promise链的可行方案

    ES6标准引入的异步编程解决方案Promise,能够将层层嵌套的回调转化成扁平的Promise链式调用,优雅地解决了“回调地狱”的问题.当Promise链中抛出一个错误时,错误信息沿着链路向后传递,直 ...

  4. 从 axios 源码中了解到的 Promise 链与请求的取消

    axios 中一个请求取消的示例: axios 取消请求的示例代码 import React, { useState, useEffect } from "react"; impo ...

  5. 如何写 JS 的链式调用 ---》JS 设计模式《----方法的链式调用

    1.以$ 函数为例.通常返回一个HTML元素或一个元素集合. 代码如下: function $(){ var elements = []; ;i<arguments.length;i++){ v ...

  6. jquery中链式调用原理

    (1).链式调用 $("#mybtn").css("width","100px") .css("height",&quo ...

  7. javascript方法链式调用和构造函数链式调用对比

    先说一下方法链:B的实例从A继承了A中的同名方法,如果B的方法重载了A中的方法,B中的重载方法可能会调用A中的重载方法,这种方法称为方法链. 构造函数链:子类的构造函数B()有时需要调用父类的构造函数 ...

  8. 第51讲:Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用

    今天学习了下scala中的链式调用风格的实现,在spark编程中,我们经常会看到如下一段代码: sc.textFile("hdfs://......").flatMap(_.spl ...

  9. Scala 深入浅出实战经典 第51讲:Scala中链式调用风格的实现代码实战及其在Spark中应用

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

随机推荐

  1. 微信小程序下拉框组件

    >>下拉组件 1.组件结构: 2.index.js: //index.js Component({ /** * 组件的属性列表 */ properties: { propArray: { ...

  2. 使用10046追踪执行计划demo

    (一)开启10046追踪 SQL> alter session set events '10046 trace name context forever,level 12'; (二)执行sql语 ...

  3. 实验3 SQL注入原理-万能密码注入

    实验目的 (1)理解[万能密码]的原理 (2)学习[万能密码]的使用 实验原理 一.访问目标网站 1.选择一个存在漏洞的论坛 http://192.168.1.3:8009 进入 2.输入用户名[ad ...

  4. GCC编译流程浅析

    GCC-GCC编译流程浅析 序言 对于大多数程序员而言,大家都知道gcc是什么,但是如果不接触到linux平台下的开发,鲜有人真正了解gcc的编译流程,因为windows+IDE的开发模式简直是一条龙 ...

  5. Unity进阶:行为树 01

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  6. 微信小程序~设置tabBar后,wx.navigateTo不能跳转

    当wx.navigateTo跳转链接跟app.json中设置的tabbar中跳转链接一样时,wx.navigateTo就不能跳转可以改为wx.switchTab 1.当app.json中设置了tabb ...

  7. Java 第十次作业

    题目1:计算通过中介买房的过程,需交纳的中介费和契税. 代码 /** Business接口中: 两个成员变量RATIO,TAX分别代表房屋中介收取的中介费用占房屋标价的比例及购房需要交纳的契税费用占房 ...

  8. django-文件上传和下载--fastDFS安装和配置

    5.1 安装fastdfs依赖包 一:下载安装FDFS依赖: libfastcommon 下载地址:https://codeload.github.com/happyfish100/libfastco ...

  9. Node.js是什么?提供了哪些内容?

    什么是Node.js? Node.js是基于Chrome V8 引擎的 JavaScript运行时(运行环境). Node.js提供了哪些内容? Node.js运行时,JavaScript代码运行时的 ...

  10. 树莓派3 有线网卡静态IP设置

    步骤: 1.使用SSH登陆树莓派,第一连接可使用鼠标+键盘+显示器直接进入树莓派界面设置无线连接. 2.更新软件: sudo apt-get update 3.安装vim:系统自带的vi非常不好用,使 ...