Promise链式调用 终止或取消
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链式调用 终止或取消的更多相关文章
- 使用Promise链式调用解决多个异步回调的问题
使用Promise链式调用解决多个异步回调的问题 比如我们平常经常遇到的一种情况: 网站中需要先获取用户名,然后再根据用户名去获取用户信息.这里获取用户名getUserName()和获取用户信息get ...
- promise链式调用的应用
then在链式调用时,会等前一个then或者函数执行完毕,返回状态,才会执行回调函数. (1)代码顺序执行,第一步调用了函数cook ,cook执行返回了一个promise,promise返回的是成功 ...
- 中断或取消Promise链的可行方案
ES6标准引入的异步编程解决方案Promise,能够将层层嵌套的回调转化成扁平的Promise链式调用,优雅地解决了“回调地狱”的问题.当Promise链中抛出一个错误时,错误信息沿着链路向后传递,直 ...
- 从 axios 源码中了解到的 Promise 链与请求的取消
axios 中一个请求取消的示例: axios 取消请求的示例代码 import React, { useState, useEffect } from "react"; impo ...
- 如何写 JS 的链式调用 ---》JS 设计模式《----方法的链式调用
1.以$ 函数为例.通常返回一个HTML元素或一个元素集合. 代码如下: function $(){ var elements = []; ;i<arguments.length;i++){ v ...
- jquery中链式调用原理
(1).链式调用 $("#mybtn").css("width","100px") .css("height",&quo ...
- javascript方法链式调用和构造函数链式调用对比
先说一下方法链:B的实例从A继承了A中的同名方法,如果B的方法重载了A中的方法,B中的重载方法可能会调用A中的重载方法,这种方法称为方法链. 构造函数链:子类的构造函数B()有时需要调用父类的构造函数 ...
- 第51讲:Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用
今天学习了下scala中的链式调用风格的实现,在spark编程中,我们经常会看到如下一段代码: sc.textFile("hdfs://......").flatMap(_.spl ...
- Scala 深入浅出实战经典 第51讲:Scala中链式调用风格的实现代码实战及其在Spark中应用
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
随机推荐
- 2019 波克城市ava面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.波克城市等公司offer,岗位是Java后端开发,最终选择去了波克城市. 面试了很多家公司,感觉大部分公司考察的点 ...
- Idea创建一个SpringBoot工程
1.打开Idea,点击新建工程 File—New—Project 2.点击下一步后可能会很一直在请求,或者直接报如下错误, 解决办法:直接点OK后再点Previous返回上一步,继续重新Next 3. ...
- zookerper安装使用教程
转载自 http://blog.java1234.com/blog/articles/379.html 再安装zookeeper之前,我们看下zookeeper简介 https://baike.bai ...
- python入门基础思维导图
- 使用vue-cli搭建vue项目问题解决方案
工欲善其事必先利其器,安装所需环境 node和npm的安装 首先需要安装node环境,直接到官网下载安装包 https://nodejs.org/zh-cn/ 安装node默认安装npm, 不需要重复 ...
- 虚拟Dom详解 - (一)
随着Vue和React的风声水起,伴随着诸多框架的成长,虚拟DOM渐渐成了我们经常议论和讨论的话题.什么是虚拟DOM,虚拟DOM是如何渲染的,那么Vue的虚拟Dom和React的虚拟DOM到底有什么区 ...
- 【vue】vue生命周期---精简易懂-----【XUEBIG】
主要的生命周期函数分类: - 创建期间的生命周期函数:(只会调用一次) + beforeCreate:实例刚在内存中被创建出来,此时,还没有初始化好 data 和 methods 属 ...
- Celery:Optimizing
参考文档:http://docs.celeryproject.org/en/latest/userguide/optimizing.html#guide-optimizing
- FFmpeg--如何同步音视频的解决方案
如何同步视频 PTS和DTS 幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面.音频流有采样,视频流有每秒的帧率.然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频 ...
- java系统化基础-day01-基础语法知识
1.学前必看 该课程将系统化的讲解java基础,但是该课程并不适合零基础的学员,因为在整个java学习体系中我们是按照实际生产设计, 主体思路是以完成某个业务为主线,用到什么技术就学什么技术,即带着问 ...