javascript - 如何等待 chrome.tabs.query 返回选项卡 ID
问题描述
我正在尝试处理chrome.tabs.query
返回选项卡 ID。
function getTabID () {
var tabID = ''
chrome.tabs.query({
active: true,
}, function(tabs) {
tabsID = tabs[0].id
}
return tabID
}
我正在尝试获取 tabID。这似乎chrome.tabs.query({
是一种异步方法。
var responseTabID = getTabID() //calling the getTabID method.
// Code using responseTabID
所以这里我需要等待getTabID方法返回tabID。这样我将进一步使用该 tabID。
我什至可以在里面调用一个方法function(tabs) { // calling a method here }
。但是我在多个地方都需要tabID,所以我只想实现一个新方法来返回tabID。
如何等待 getTabID 方法?是否可以使用异步/等待?
解决方案
您可以尝试将回调包装在 promise 中,然后在异步函数中使用 await 来检索选项卡 ID:-
function getTabID() {
return new Promise((resolve, reject) => {
try {
chrome.tabs.query({
active: true,
}, function (tabs) {
resolve(tabs[0].id);
})
} catch (e) {
reject(e);
}
})
}
//function where you need it
async function something() {
let responseTabID = await getTabID();
}
推荐阅读
- javascript - 如何防止从“私有”模块导入?
- java - Java:将日期拆分为 n 部分
- ios - UITableView 在设备旋转后保持滚动位置
- amazon-s3 - 将 RDS 数据增量传输到 Parquet 中的 s3
- perl - 使用 Soap::Lite 将客户端证书发送到 SOAP 服务器
- node.js - 如何在节点 js 中使用 sequelize 搜索多个字段?
- python-3.x - python中的sklearn如何计算.scale_?(它到底是什么算法?)
- c++ - 如何解决一元'*'(有'char')错误的无效类型参数?
- python - 如何用光谱颜色填充 x 轴和曲线之间的空间?
- ios - UITableViewCell auto layout constraint problems due to separator line height