js 如何取消promise
1: 使用reject
function hello() {
let _res, _rej: any;
const promise = new Promise((res, rej) => {
_res = res;
_rej = rej;
setTimeout(() => {
res("hello world");
}, 5000);
});
return {
promise,
abort: (opt = {}) => {
_rej({
name: "abort",
message: "the promise is aborted",
aborted: true,
...opt
});
}
};
}
const { promise, abort } = hello();
promise.then(console.log).catch(e => {
console.log(e);
});
abort();
2: 使用Promise.race
const promise = new Promise(function(res) {
setTimeout(res, 5000, "hello world");
});
const abort = new Promise(function(_, _abort) {
_abort({
name: "abort",
message: "the promise is aborted",
aborted: true
});
});
Promise.race([promise, abort])
.then(console.log)
.catch(e => {
console.log(e);
});
使用rxjs
import { from } from "rxjs";
function hello() {
return new Promise(res => {
setTimeout(() => {
res("hello world");
}, 5000);
});
}
const hello$ = from(hello()).subscribe(
console.log,
er => {
console.error(er);
},
() => {
console.log("done");
}
);
hello$.unsubscribe();
js 如何取消promise的更多相关文章
- JS中的Promise
Promise 对象有以下两个特点. (1)对象的状态不受外界影响.Promise 对象代表一个异步操作,有三种状态:Pending(进行中).Resolved(已完成,又称 Fulfilled)和 ...
- JS 异步与 Promise
JS 异步与 Promise 本文写于 2020 年 6 月 8 日 1. 同步与异步与回调函数 Promise 现在是前端面试必考题呀,但是先不急着看 Promise,我们首先来看看什么是异步. - ...
- Eclipse编写ExtJS卡死问题 eclise js验证取消
1. Eclipse编写ExtJS卡死问题 eclise js验证取消 近期项目用到了extjs,发现项目编译的时候特别的卡,浪费很多时间而且保存的时候还要编译,因此打算看下如何取消验证extjs.最 ...
- 大话JS神器之Promise
前段时间的工作中,由于项目要在前端实现存储,于是便使用了websql,而websql的API涉及到了很多的异步问题,如果采取回调函数的方式处理,代码不够优雅,而且不利于理解,于是便找到了Promise ...
- js确定取消—js确定取消判断
国瑞前端: js确定取消,在html界面中,有css模拟的模态框,这样显示的就会更好看一些,那么javascript有没有自带的弹框呢,当然是有的,接下来我就来给大家介绍一下把: js确定取消-警告框 ...
- 如何使用 js 实现一个 Promise.all 方法 PromiseAll
如何使用 js 实现一个 Promise.all 方法 PromiseAll Promise.all PromiseAll https://developer.mozilla.org/en-US/do ...
- react hooks useEffect 取消 promise
react hooks useEffect 取消 promise cancel promise https://github.com/facebook/react/issues/15006#issue ...
- js jQuery取消添加超链接的方法小结
今天在工作中需要将某个链接给取消实现只触发事件的目的,后来发现批量取消链接等,脚本之家简单的给整理了下,希望对需要的朋友有所帮助. 单个链接取消链接并触发js事件 <a href="j ...
- JS 异步系列 —— Promise 札记
Promise 研究 Promise 的动机大体有以下几点: 对其 api 的不熟悉以及对实现机制的好奇; 很多库(比如 fetch)是基于 Promise 封装的,那么要了解这些库的前置条件得先熟悉 ...
随机推荐
- 网络流 - dinic + 当前弧优化【代码】
这是初学网络流的时候从<算法竞赛进阶指南>抄下来的一份代码,自己理解的也不是很透彻. 注意,边要从 \(1\) 开始计,不然直接 \(xor\) 运算的话取反边会直接炸掉. #includ ...
- Java——集合框架之Set&HashSet,HashMap,泛型,compareTo
Set Set接口--数据存放无序,非常简单,主要呈现信息列表 Set接口存储一组唯一.无序的对象 HashSet是Set接口常用的实现类 Set接口不存在get方法 Iterator接口:表示对集合 ...
- vmware打开虚拟级断电情况下,无法找到虚拟机文件
1.此时会在建立的虚拟机目录下,有一些 %虚拟机名字%.vmx.lck 或者别的 %虚拟机名字%.***.lck 删除这些文件夹 2.虚拟文件 是一个后缀名为vmx的文件,发现断电后 变成了v ...
- HttpURLConnection下载文件流
package com.loan.modules; import sun.net.www.protocol.file.Handler; import java.io.*; import java.ne ...
- 提升NginxTLS/SSL HTTPS 性能的7条优化建议
自2018年7月起,谷歌浏览器开始将" HTTP"网站标记为"不安全".在过去的几年中,互联网已经迅速过渡到HTTPS,Chrome浏览器的流量超过70%,并且 ...
- docker(6)镜像的使用
前言 Docker的三大核心概念:镜像.容器.仓库.初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似 我们可以把镜像看作类,把容器看作类实例化后的对象. d ...
- C++模板的介绍
作者:良知犹存 转载授权以及围观:欢迎添加微信:Allen-Iverson-me-LYN 1. 模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码.C++模板的作用,类 ...
- 使用Python调用SMTP服务自动发送Email
需求背景 假设我们想设计一个定时任务,比如每天定时的用python来测试服务是否在正常运行,但是又不希望每天登录到系统后台去查看服务状态.这里我们就可以采取python的smtp模块进行任务结果广播, ...
- Eclipse无法查看Servlet源代码的解决方案
在Apache官方网站中选择你对应的tomacat版本下载对应的Tomcat的源码 下载Source Code Distributions下的zip 将下载的zip文件复制到lib文件夹下 在提示页面 ...
- poj3757 Training little cats
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 11496 Accepted: 2815 Description Face ...