Solo experimentando con JS. He encontrado algo que no puedo entender.
tengo este codigo:
prompt('title', setTimeout(() => { return 'yes' }, 1000));Cuando lo ejecuto por primera vez, imprime 2. Pero cuando lo ejecuto de nuevo, imprime 3.
Pero, ¿qué es este contador y por qué comienza desde 2? ¿De dónde vienen los valores? ¿Por qué no regresa sí?
Cuando llama a setTimeout el tiempo de espera recibe un timeoutID (que luego se puede usar para cancelarlo con clearTimeout ). Este ID de tiempo de espera aumenta cada vez que se realiza un nuevo tiempo de espera. Cuando se establece como el valor predeterminado para el prompt , se especifica en forma de cadena (lo que hace que se devuelva el ID de tiempo de espera).
El valor comienza desde dos porque probablemente haya realizado un tiempo de espera antes de ejecutar el prompt .
Demostración:
const first = setTimeout(() => {}, 1).toString() const second = setTimeout(() => {}, 1).toString() console.log(first, second)