Tengo dos funciones que quiero ejecutar una después de que la otra termine. Estoy usando webdriver.IO, así que necesito esperar a que una función inicie sesión en la página y luego quiero que se ejecute otra función.
Otras preguntas aquí en SOF me dicen que use una promesa, sin embargo, necesito usar una promise , sin embargo, cuando envuelvo mis funciones en una promesa, aparece el error SyntaxError: await is only valid in async function .
Tengo una función de inicio de sesión
const Login = async () => { const browser = await remote({ capabilities: { browserName: 'chrome' } }) const userName = await browser.$('#username') const password = await browser.$('#password') await userName.setValue(process.env.NAMEUSERNAME) await password.setValue(process.env.PASSWORD) const loginButton = await browser.$('button[type="submit"]') await loginButton.click() } Una vez que esto se complete y la página se cargue, quiero ejecutar otra función. Logré que esto funcione con un setTimeout , sin embargo, no quiero tener solo una cadena de setTimeout en mi aplicación
Es difícil darte un código preciso sin ver desde dónde se llama: pero suponiendo que esté dentro de alguna otra función, solo tienes que marcar esa async y usar await dentro de ella:
async theOuterFunction() { await Login(); doTheOtherThing(); } (Si doTheOtherThing también devuelve una promesa, también podría await eso, y lo necesitaría si desea ejecutar otro código dentro de theOuterFunction después de eso. Pero no es necesario si es la última declaración dentro de la función).