我正在尝试等待单击按钮,然后再继续执行另一个函数。
async function foo() {
// code before
await ??? // wait for start button to be clicked before proceeding
// code after
}
startButton.addEventListener("click", function() {
return new Promise(); // ???
}, false);
Run Code Online (Sandbox Code Playgroud)
如何在另一个函数中使用事件侦听器?
我正在使用屏幕捕获 API,并尝试将最终捕获保存到视频文件(WebM、MP4 等)中。我有这两个 JavaScript 函数:
async function startCapture() {
try {
videoElem.srcObject = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
} catch(err) {
console.error("Error: " + err);
}
}
function stopCapture() {
let tracks = videoElem.srcObject.getTracks();
tracks.forEach(track => track.stop());
videoElem.srcObject = null;
}
Run Code Online (Sandbox Code Playgroud)
开始捕获时,视频显示正常,但我不确定如何实际存储其内容。videoElem是 aPromise解析为 a MediaStream。tracks是一个对象数组MediaStreamTrack。这是我第一次进行任何类型的 Web 开发,所以我有点迷失!