From a07268feda501fabad9ad560f4091d143fcff595 Mon Sep 17 00:00:00 2001 From: hyin08 Date: Sun, 28 Aug 2022 22:25:10 +0800 Subject: [PATCH] my promise --- index.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/index.js b/index.js index 59d6c84..28e58fd 100644 --- a/index.js +++ b/index.js @@ -10,12 +10,20 @@ function myPromise(constructor) { function resolve(value) { // TODO resolve如何改变状态及返回结果 + if(self.status === "pending") { + self.value = value; + self.status = "resolved"; + } } function reject(reason) { // TODO reject如何改变状态及返回结果 + if(self.status === "pending") { + self.reason = reason; + self.status = "rejected"; + } } @@ -36,6 +44,16 @@ function myPromise(constructor) { myPromise.prototype.then = function (onFullfilled, onRejected) { //TODO then如何实现 + let self = this; + switch(self.status) { + case "resolved": + onFullfilled(self.value); + break; + case "rejected": + onRejected(self.reason); + break; + default: + } } module.exports = myPromise