首页 > 解决方案 > 如何让弹出代码等待后台代码完成后再移动到下一行?

问题描述

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()什么?如果可能的话,我更喜欢从弹出窗口而不是后台回调中进行所有调用。

标签: javascriptgoogle-chrome-extension

解决方案


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 是在哪里传递的,但我希望我能理解总体思路。


推荐阅读