javascript - 如何让弹出代码等待后台代码完成后再移动到下一行?
问题描述
popup.js:
chrome.runtime.getBackgroundPage((bg) => {
bg.createTabObj();
Volume.init();
});
背景.js:
createTabObj() {
chrome.tabCapture.capture({
audio: true,
video: false
},
(stream) => {
//do something
})
实际上,在后台方法完成其过程之前,弹出窗口继续到下第二行。确保createTabObj
在弹出窗口继续之前后台完成处理方法的最简单方法是Volume.init()
什么?如果可能的话,我更喜欢从弹出窗口而不是后台回调中进行所有调用。
解决方案
chrome.tabCapture.capture 的第二部分是一个回调函数。只需在该回调函数中调用 Volume.init() 即可。
chrome.runtime.getBackgroundPage((bg) => {
bg.createTabObj(Volume.init);
});
createTabObj(id, yourcallback) {
chrome.tabCapture.capture({
audio: true,
video: false
},
(stream) => {
yourcallback();
//do something
})
我不确定你的 createTabObj id 是在哪里传递的,但我希望我能理解总体思路。
推荐阅读
- javascript - 如何将 SerializeObject 解析为 Json 数组对象 jQuery
- python - 用指定的坐标绘制 networkx
- docker - 当脉冲 vpn 处于活动状态时,无法访问 localhost 端口映射上的 docker(对于 Windows)容器
- azure - Azure 函数也在未计划时运行
- reactjs - 类型“{}”.ts(2339) 上不存在属性“getTrimmedCanvas”,签名板
- swift - 在swift 5中,如何在[String: Float]的字典中检索第二个低值的key?
- fluid-framework - 如何使 Fluid 框架离线工作?
- string - 用汇编语言将字符存储在内存位置
- content-security-policy - CSP (Content-Security-Policy) 违反 stats.g.doubleclick.net,尽管主机名已添加到列表中
- r - 如何从 CRAN 页面安装旧 R 版本