Estoy ejecutando secuencias de comandos que no son de confianza en un entorno limitado de WebAssembly (usando un intérprete que no es JS escrito en WASM). Es posible que estos scripts que no son de confianza ejecuten un bucle sin fin que haría que la aplicación principal no responda. ¿Es posible configurar una "interrupción del temporizador" en una función que se espera que finalice en N milisegundos?
Ejemplo de pseudocódigo:
const timeoutMS = 1000; const untrustedFn = () => {}; // Theoretical function. I don't know if modern JS environments // support this. // This will throw an exception if `untrustedFn` does not finish in 1000 ms. finishExecutionWithinMs(timeoutMS, untrustedFn);setTimeout no sería posible aquí ya que el ciclo sin fin bloquearía el ciclo de eventos para que no atienda la devolución de llamada.catch )¿Los navegadores modernos admiten funciones como esta?