我在给定时间后使用带有请求承诺的bluebird取消承诺列表。问题是,如果我取消个人承诺,它会取消而不会引发任何错误。
const Promise = require('bluebird');
const request_promise = Promise.promisify(require('request-promise'));
Promise.config({
cancellation: true
});
let r_promise = [request_promise({
method: 'get',
uri: 'https://reqres.in/api/users?page=2'
}).catch((error) => {
console.error('error 1')
}), request_promise({
method: 'get',
uri: 'https://reqres.in/api/users?page=2'
}).catch((error) => {
console.error('error 1')
})];
r_promise.forEach((row, index) => {
console.log(row.isCancellable());
row.cancel();
});
setTimeout(() => {
Promise.all(r_promise).then(data => {
console.log(data);
}).catch(err => {
console.log(err);
});
}, 4000);
它生成延迟取消观察者。表示我要在解决之前取消。我有什么办法可以在解决之前取消它。