美文网首页前端技术
黄莆课堂手搓Promise

黄莆课堂手搓Promise

作者: 黄莆芸哥 | 来源:发表于2024-10-19 12:30 被阅读0次

Promise A+
1、Promise有哪些状态?对应值有哪些?
Promise:pending | fulfilled | rejected
executor: new Promise时候需要立即执行,接受两个参数resolve+ reject

2、Promise默认状态是?状态是如何流转的?

3、Promise返回值?
then:接受onFulfilled 和onRejected
如果then,promise已经成功,执行onFulfilled,参数value
如果then,promise已经失败了,执行onRejected,参数reason
then中的任何的error => onRejected

4、手写Promise

const PROMISE_STATE = {
PENDING:0,
FULFILLED:1,
REJECTED:2
}

class MyPromise{
#result
#state = PROMISE_STATE.PENDING
#callback = []

constructor(executor){
    executor(this.#resolve.bind(this),this.#reject.bind(this) )
}

#resolve(value){
    if(this.#state !== PROMISE_STATE.PENDING) return

    this.#result = value 
    this.#state = PROMISE_STATE.FULFILLED 

    queueMicrotask( () => {
        this.#callback.forEach(cb => {
            cb()
        })
    })
}
#reject(reason){ }

then(onFulfilled, onRejected){
    return new MyPromise((resolve,reject) => { 
        if(this.#state === PROMISE_STATE.PENDING){
            this.#callback.push(() => {
                resolve(onFulfilled(this.#result))//把回调函数的返回值,作为resolve的参数,传给新的Promise
            }) 
        }
        else if(this.#state === PROMISE_STATE.FULFILLED){
            queueMicrotask(() => {  
                resolve(onFulfilled(this.#result)) //把回调函数的返回值,作为resolve的参数,传给新的Promise
            })
        }
    })

}       

}

const mp = new MyPromise( (resolve,reject) => {
setTimeout( () => {
resolve("芸总最屌")
},520)
})

mp.then( (result) => {
console.log("读取数据第一次",result);
return "芸总最帅"
})
.then(r => {
console.log("读取数据第二次",r);
return "芸总是大佬"
})
.then(r => {
console.log("读取数据第三次",r);
})

相关文章

  • 第六章 无话不谈

    到了教室,他们都桌子上放满了情书, 有的是黄莆泽的,有的是易萱涵的。黄莆泽 把情书全部扔进垃圾桶里,而易萱涵把情书...

  • 一半儿

    怒目眈眈黄黑色 嗡嗡作响两手搓 手握拂尘高声喝 轻轻落 一半儿死了一半儿活

  • 养生妙招

    1】 养心 :早上吃完早饭,边走边搓手,掌心有个心经的主穴劳工,手搓热后捂眼睛,再搓前臂,两手交叉着搓。2】 护肾...

  • 护手霜

    这一个多月来,一天不知道洗多少次手,每次都要用洗手液搓搓搓。 不知不觉,感觉手都搓得变白了,但是也变糙了。。。 以...

  • 胡有宸:搓耳朵养阴降三高,你相信?

    常搓这6个地方,延年益寿,更显年轻!(三) 老中医总讲:“一双手就能养全身”。没错,搓搓手、搓搓脚、搓搓头,在中医...

  • 胡有宸:搓手心可护心延衰老

    常搓这6个地方,延年益寿,更显年轻!(四) 老中医总讲:“一双手就能养全身”。没错,搓搓手、搓搓脚、搓搓头,在中医...

  • 胡有宸:搓搓脚健脑防百病

    常搓这6个地方,延年益寿,更显年轻!(五) 老中医总讲:“一双手就能养全身”。没错,搓搓手、搓搓脚、搓搓头,在中医...

  • 丈夫对我说

    不要洗了 你搓呀搓呀搓走了多少青春的光阴 一家四口人的清洁 是你一双冬天里常常冻得裂开的手 搓呀搓呀搓出来的 不要...

  • 手撕Promise

  • 春天的碎语(散文93)

    窗外,风不大,但还是有股丝丝凉气,让我的手和脸冰冷起来,搓搓,反复地搓搓,突然感觉好暖和。从上周开始,一到早...

网友评论

    本文标题:黄莆课堂手搓Promise

    本文链接:https://www.haomeiwen.com/subject/fvicdjtx.html