下面是一个代码示例:
var promise = new Promise((resolve, reject) => {
resolve("resolved");
});
promise.abort = function () {
console.log("abort!");
};
console.log(promise.abort());
function bar() {
return promise.then((value) => {
return value + "!";
});
}
newPromise = bar();
newPromise.then(value => {
console.log(value);
})
console.log(newPromise.abort());
我在承诺中添加了一个自定义函数。调用函数 abort()
工作正常。在函数中 bar()
我使用 then()
方法注销解析的值。我知道 bar()
这是一个新的承诺。但它失去了自定义功能 abort()
.
如何将自定义函数继承到新的promise?
2条答案
按热度按时间4ngedf3f1#
创建您自己的类并为本机promise创建子类。然后您可以将自定义方法保留为
.then()
将返回自定义类dkqlctbz2#
您不能取消/中止承诺。一种方法是编写泛型
timeout
或类似的功能来处理长期的承诺-另一种方法是使用支持取消的第三方库,如bluebird-