Javascript 未解决和未兑现的承诺

Javascript 未解决和未兑现的承诺,javascript,node.js,promise,Javascript,Node.js,Promise,如果承诺从未得到解决或拒绝,会发生什么?例如,如果我要编写一个函数,它返回一个承诺,但它从未解析或拒绝它,并将其放在循环中。会发生什么?它最终会让事情变慢吗?如果它花费的时间太长,它会自动拒绝吗?不,它不会被拒绝,您需要使用一些使用超时的竞态条件。e、 g const sleep = seconds => new Promise(res => setTimeout(res, seconds * 1000)); const dataPromise = db.getUser(); ret

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

不,它不会被拒绝,您需要使用一些使用超时的竞态条件。e、 g

const sleep = seconds => new Promise(res => setTimeout(res, seconds * 1000));
const dataPromise = db.getUser();
return Promise.race([dataPromise, sleep(10)]);
这就是你要么得到数据要么什么也得不到的方式。您需要添加逻辑来处理此问题。

回答如下: