我正在为webextension
firefox
工作,需要捕获所有标签。我使用以下代码,但capture
为undefined
:
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
获取捕获的图像
答案 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
})
});
}