我正在尝试创建制表符,然后再继续编写脚本,但我还没有找到合适的方法。
以下示例代码说明了我的问题:
for (x=0;x<5;x++)
{
console.log('start of my script');
chrome.tabs.create({ url: "myURL", active: false }, function(tab)
{
console.log('Tab created: '+tab.id);
// I do some scripting here
}
console.log('end of my script');
}
当然,这里发生的是我看到: 我的脚本开始 我的剧本结尾 创建标签:...
我在调用选项卡创建时尝试使用“await”,但它不起作用,我无法删除回调,因为我需要它来获取新选项卡的ID。
我应该以不同的方式使用回电吗?或者还有另一种方法可以实现这一目标吗?
谢谢! 劳伦
答案 0 :(得分:1)
如果用position: absolute
包装函数并异步调用异步代码,则异步代码更易于读写。
我认为有一个库会将所有Chrome API与Promise版本捆绑在一起,但一次只能执行一项功能并不是很多代码。
Promise
可以在function chromeTabsCreateAsync(createProperties) {
return new Promise((resolve, reject) => {
chrome.tabs.create(createProperties, tab => {
if (chrome.runtime.lastError) {
reject(new Error(chrome.runtime.lastError));
} else {
resolve(tab);
}
});
});
}
函数内部使用await
调用此函数,并且循环中的每次迭代都将暂停,直到值结算。
async