关于 promise 的问题:请问在这个短小函数里 then 会被执行几遍? 财富值52

2016-10-26 14:16发布

关于 promise 的问题:请问在这个短小函数里 then 会被执行几遍?

new Promise(function (resolve) {     async1(resove); // 某异步函数(函数定义省略)。     setTimout(resove, 4000); // 假如4秒钟后还不结束就强行结束。 }.then(function () { alert("hello!"); });

就算 async1() 函数在不到4秒钟的时间内就正常完成了,可是 setTimeout() 不还在计时并没有停吗?4秒钟时间一到,它是不是还会照样调用 resolve ?那么,将会看到弹出几次 "hello" 呢?

我另外的问题是:

1、假如只会弹出一次 "hello",那么可否采用这种方法来给 promise 加上时限机制(即:若在一段时限内还不结束就强行结束,否则则不干预)?

2、假如这种机制有效的话,那请问是不是用 Promise.race() 赛跑方法来实现时限机制就显得啰嗦了?(因为看到有CSDN大牛 @小平果118 写的讲解 promise 的博文里举例用到 Promise.race() 让两个 promise 赛跑的方法来实现时限机制,故有此惑。)

刚接触了解 promise,请原谅我所提问题的初浅。还望各位大侠不吝赐教,谢谢!

友情提示: 问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
0条回答

一周热门 更多>