
在某个异步函数内 function f(){ return new Promise(async (resolve, reject) => { event.on('timeout',()=>{ resoleve() }) //do something })) }
这个异步函数内,如果触发 event 的 emit ,即使这个 promise 是 resolved ,但是后面的代码仍然在继续运行,我想要做到,如果达到超时时间,就结束这个函数中所有的代码,并且返回 可以做到吗
1 Trim21 Aug 7, 2023 via Android js 的话感觉只能传个 AbortSignal 进去,然后修改后续代码检查是否已经超时? |
2 ysc3839 Aug 7, 2023 via Android 不能中途中断,得在后面的代码中隔一段就检查一下是否已取消,然后返回。 |
4 zbinlin Aug 7, 2023 后面的代码是一个 loop 循环吗?如果不是一般就是执行完的。 |
5 Rache1 Aug 7, 2023 用这个 Promise.race() - Javascript | MDN https://developer.mozilla.org/zh-CN/docs/Web/Javascript/Reference/Global_Objects/Promise/race |
7 DingJZ Aug 8, 2023 场景再完整一点,想象不到外层是怎么用的 |