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