Estoy tratando de hacer uso del método window.showInformationMessage de vscode durante un comando que toma una captura de pantalla de la pantalla actual. Después de tomar la captura de pantalla, uso
await window.showInformationMessage(`Archivo guardado en ${ruta}`,"Abrir", "Copiar ruta");
Lo que le da al usuario la opción de abrir su imagen guardada en un explorador de archivos o copiar la ruta al portapapeles. Sin embargo, si el usuario no hace nada cuando aparece el cuadro de diálogo Mensaje de información, esta llamada nunca se resuelve. Además de eso, el usuario puede ejecutar el comando de captura de pantalla tantas veces como desee, y cada vez que lo haga, la ejecución del código se detendrá, esperando que se resuelva la promesa.
He usado dos métodos diferentes para resolver esto:
PREGUNTA 1: ¿Qué está pasando debajo del capó aquí? ¿Cómo puedo ejecutar este comando muchas veces si el nodo se ejecuta en un solo hilo? ¿Se crea otro subproceso para cada llamada de comando o se crea una nueva instancia de la extensión cada vez que llamo a este comando?
PREGUNTA 2: ¿Cuál es una buena manera de ver todo esto? He usado el depurador pero no ha ayudado mucho.