Firefox Webextension:捕获所有标签

时间:2018-03-29 10:38:49

标签: javascript promise firefox-webextensions

我正在为webextension firefox工作,需要捕获所有标签。我使用以下代码,但captureundefined

var tabResults = [];

for (let tab of tabs) {
    var tabImage;
    var capturing = browser.tabs.captureTab(tab.id);
    capturing.then(function(imageUri){
        return imageUri;
    }).then(imageUri => {
        tabImage = imageUri;
    });

    tabResults.push({
        title: tab.title,
        fav: tab.favIconUrl,
        pinned: tab.pinned,
        capture: imageUri
    });
}

实际上我对promises如何工作感到困惑,因为captureTab返回promise而我不知道如何从循环内的promise获取捕获的图像

1 个答案:

答案 0 :(得分:0)

将您的数据推送到then函数中。由于captureTab是异步函数

var tabResults = [];

for (let tab of tabs) {
  var tabImage;
  var capturing = browser.tabs.captureTab(tab.id);
  capturing.then(function(imageUri) {
    tabResults.push({
      title: tab.title,
      fav: tab.favIconUrl,
      pinned: tab.pinned,
      capture: imageUri
    })
  });
}