未解决和未拒绝的承诺



如果承诺从未得到解决或拒绝,会发生什么?例如,如果我要编写一个函数,它返回了一个promise,但从未解决或拒绝它,并将其放入循环中。会发生什么?它最终会减缓事态发展吗?如果花费太长时间,它会自动拒绝吗?

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

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

这就是你要么得到数据要么什么都不得到的方式。你需要添加你的逻辑来处理这个问题。

相关内容

最新更新