88- 设定三个状态 ` PENDING、FULFILLED、REJECTED ` ,只能由` PENDING ` 改变为` FULFILLED、REJECTED ` ,并且只能改变一次
99- ` MyPromise ` 接收一个函数` executor ` ,` executor ` 有两个参数` resolve ` 方法和` reject ` 方法
1010- ` resolve ` 将` PENDING ` 改变为` FULFILLED `
11- - ` reject ` 将` PENDING ` 改变为` FULFILLED `
11+ - ` reject ` 将` PENDING ` 改变为` REJECTED `
1212- ` promise ` 变为` FULFILLED ` 状态后具有一个唯一的` value `
1313- ` promise ` 变为` REJECTED ` 状态后具有一个唯一的` reason `
1414
9393 onFulfilled (this .value );
9494 break ;
9595 case REJECTED :
96- onFulfilled (this .value );
96+ onRejected (this .reason );
9797 break ;
9898 case PENDING :
9999 this .onFulfilledCallbacks .push (() => {
@@ -269,7 +269,7 @@ MyPromise.prototype.finally = function(fn) {
269269` Promise.resolve ` 用来生成一个直接处于` FULFILLED ` 状态的Promise。
270270
271271``` js
272- MyPromise .reject = function (value ) {
272+ MyPromise .resolve = function (value ) {
273273 return new MyPromise ((resolve , reject ) => {
274274 resolve (value);
275275 });
@@ -295,7 +295,7 @@ MyPromise.reject = function(reason) {
295295
296296``` js
297297 MyPromise .all = function (promises ) {
298- return new Promise ((resolve , reject ) => {
298+ return new MyPromise ((resolve , reject ) => {
299299 if (promises .length === 0 ) {
300300 resolve ([]);
301301 } else {
@@ -325,11 +325,10 @@ MyPromise.reject = function(reason) {
325325
326326``` js
327327 MyPromise .race = function (promises ) {
328- return new Promise ((resolve , reject ) => {
328+ return new MyPromise ((resolve , reject ) => {
329329 if (promises .length === 0 ) {
330330 resolve ();
331331 } else {
332- let index = 0 ;
333332 for (let i = 0 ; i < promises .length ; i++ ) {
334333 promises[i].then (data => {
335334 resolve (data);
0 commit comments