promise各种实现中都维护了一个数组_deferreds保存then方法注册的回调函数集,什么时候这个数组能达到2项?

cjwj
  • 628

我查看了多种promise实现的文章,都表示需要维护一个_deferreds保存then方法注册的回调函数集信息,也有些实现维护onResolvedCallbackonRejectedCallback来维护。

但很多都没有说明_deferreds为何需要是一个数组。或者对_deferreds的说明都是比较模糊,我技术还不到家不能直接看明白。

比如这篇里
作者称then方法可被同一个promise调用多次,所以需要是初始化为一个数组,我不清楚什么情况下then方法会被同一个promise调用多次。

求给出代码说明这种情况!

回复
阅读 1.2k
1 个回答
✓ 已被采纳

假如我需要在3s后,执行任务1和任务2,那就要写成下面的形式

function f1(){}
function f1(){}
var promise = new Promise((resolve) => {
    setTimeout(resolve, 3000)
})
promise1.then(f1)
promise1.then(f2)
宣传栏