未解决和无法拒绝的承诺

时间:2019-11-11 19:28:15

标签: javascript node.js promise

如果承诺从未得到解决或拒绝,会发生什么?例如,如果我要编写一个返回诺言但从未解决或拒绝过诺言的函数并将其放在循环中的函数。怎么了?最终会减慢速度吗?如果花费的时间太长,它会自动拒绝吗?

1 个答案:

答案 0 :(得分:0)

否,它不会被拒绝,您需要使用一些使用超时的竞争条件。例如

const sleep = seconds => new Promise(res => setTimeout(res, seconds * 1000));
const dataPromise = db.getUser();
return Promise.race([dataPromise, sleep(10)]);

这是获取数据或不获取数据的方式。您需要添加逻辑来处理该问题。