NO borre mi pregunta. Revisé la web, las documentaciones, no sé por qué sucede esto y eliminar la pregunta NO ayuda. No hay otras preguntas similares a la mía.
Aquí va. A continuación se muestra cómo creo que debería suceder. Pero incluso con toda la sintaxis de async away promis que coloco allí, no sucede. Cuando se llama a la función asíncrona, nadie espera a que termine. No sé qué más hacer, excepto conectar en cadena todo bajo la función asíncrona que estoy tratando de evitar. Ayuda por favor.
Intenté usar tabs= await getcurrenttab() , pero eso provoca un error que dice que solo funciona en funciones asíncronas. Que el oyente no es.
manifiesto.json
{ "manifest_version": 3, "name": "DHL Helper", "description": "This helper helps DHL's quality of life, improves mental health.", "version": "1.0", "action": { "default_icon": "icon.png", "default_popup": "popup.html" }, "content_scripts": [{ "matches":["*://servicenow.*.com/*", "http://*/*", "https://*/*"], "js": ["content_helper.js"] }], "permissions": [ "activeTab" ], "host_permissions": [ "http://www.blogger.com/", "*://*/*" ] }emergente.js
document.addEventListener('DOMContentLoaded', function() { console.log('got tabs id'); tab = getCurrentTab(); console.log('Active tab ' + tab.id); }); async function getCurrentTab(){ console.log('trying to get tabs id'); let queryOptions = {active: true, currentWindow: true}; return await chrome.tabs.query(queryOptions) .then((tabs) => { console.log('Obtained tab ID'); console.log(tabs); return tabs[0]; }) .catch((Error) => { console.log('it failed'); console.error; return; }) }document.addEventListener('DOMContentLoaded', async function() { console.log('got tabs id'); tab = await getCurrentTab(); console.log('Active tab ' + tab.id); });Su enfoque ya era correcto, pero si desea usar await en la función await, también debe hacer que la función de ejecución sea asíncrona.
el usuario menciona que intenta usar =await getCurrentTab() pero encuentra un error que await es solo para funciones asíncronas...
agregar async a la función de escucha de eventos solucionó el problema
cambia esto:
document.addEventListener('DOMContentLoaded', function() {a esto:
document.addEventListener('DOMContentLoaded', async function() {