常用!提前 reject promise 的 2 种场景,收藏等于学会

常用!提前 reject promise 的 2 种场景,收藏等于学会
最新回答
真相是真

2020-06-19 21:14:40

提前 reject Promise 的两种常见场景如下

  1. 重复操作时的提前 reject

    • 场景描述:当点击一个按钮触发请求后,若在执行过程中再次点击另一个按钮,我们可以提前 reject 当前的 Promise,不再等待后续请求的结果。
    • 实现方法:在代码中加入条件判断,一旦满足特定条件,就 reject 错误信息,从而实现提前 reject。
  2. 请求超时的提前 reject

    • 场景描述:将 Promise 用于封装异步请求时,可以设定一个时间阈值。如果请求超过这个时间仍未完成,可以提前 reject Promise,然后执行后续操作。
    • 实现方法:利用 Promise.race 方法,将业务逻辑的 Promise 和一个设定了超时时间的 Promise 进行竞态处理。一旦超时 Promise 先达到拒绝状态,就会触发整个 Promise.race 的拒绝,从而实现提前 reject。

重点内容:在这两种场景中,提前 reject Promise 并不是撤回正在进行的异步操作,而是表示不再需要该操作的结果,并立即执行后续的逻辑处理。