实现 promise
时间: 2024-03-30 12:29:27 浏览: 12
JavaScript中的Promise是一种异步编程的解决方案,它可以避免回调地狱,使得异步操作更加简洁和易于维护。下面是一个简单的Promise实现:
```
function MyPromise(fn) {
var self = this;
self.value = null;
self.error = null;
self.onFulfilled = null;
self.onRejected = null;
function resolve(value) {
setTimeout(function() {
self.value = value;
self.onFulfilled(self.value);
}, 0);
}
function reject(error) {
setTimeout(function() {
self.error = error;
self.onRejected(self.error);
}, 0);
}
fn(resolve, reject);
}
MyPromise.prototype.then = function(onFulfilled, onRejected) {
var self = this;
self.onFulfilled = onFulfilled;
self.onRejected = onRejected;
};
```
这个Promise实现包含了一个构造函数和一个then方法。构造函数接收一个函数作为参数,这个函数有两个参数,分别是resolve和reject。当异步操作成功时,调用resolve方法并传入结果值,当异步操作失败时,调用reject方法并传入错误信息。then方法接收两个参数,分别是onFulfilled和onRejected,当异步操作成功时,调用onFulfilled方法并传入结果值,当异步操作失败时,调用onRejected方法并传入错误信息。