Deferred 的实现
一直好奇这个是用来做什么的,传说是复杂的 Promise 的场景用这个会更好
// 实现
function Deferred() {
this.promise = new Promise((resolve, reject) => {
this.resolve = resolve;
this.reject = reject;
});
}
// 基本使用
const deferred = new Deferred();
deferred.promise
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error);
});
// 在适当的时候解决 promise 对象
deferred.resolve('Success!');
// 或者在适当的时候拒绝 promise 对象
// deferred.reject(new Error('Error!'));