js 如何取消promise
JS 如何 取消 Promise
2023-09-14 08:58:44 时间
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();
相关文章
- 在html中js如何给字符串中加换行符
- 【说站】js中变量对象如何理解
- 几个常见的js手写题,你能写出来几道
- JS面试题-js新增基本数据类型BigInt
- js数组添加删除数据_如何删除数组中的元素
- 一文搞懂如何在Three.js里创建阴影效果 |《Three.js零基础直通14》
- 如何使用JSubFinder从网页JS代码中寻找到敏感信息
- JS如何返回异步调用的结果?
- js如何实现随机数的切换
- JS如何实现一个注册按钮10秒倒计时效果
- JS 如何利用浏览器的 cookie 保存用户名
- js 数组去除重复数据-5 个提升你 JS 编码水平的实例
- 一个新的JS语法是如何诞生的?
- JS如何为表单聚焦控件设置醒目的样式
- JS如何判断浏览器类型和详细区分IE各版本浏览器详解编程语言
- js中使用ajax请求数据的时候,如何实现return详解编程语言
- JS倒计时跳转页面详解编程语言
- 如何使用Node.js连接Oracle数据库(node连接oracle)
- 使用JS实现Redis数据读取(js读取redis)
- 使用JS控制Oracle数据库的更新(js控制oracle更新)
- javaScript(JS)替换节点实现思路介绍
- JS如何将UTC格式时间转本地格式
- js如何取消事件冒泡
- js立即调用的函数表达式如何写
- js实现连个数字相加而不是拼接的方法
- JS中判断null、undefined与NaN的方法
- js如何调用qq互联api实现第三方登录
- 引用其它js时如何同时处理多个window.onload事件