Estoy haciendo algunas pruebas funcionales con mocha. Guardé el nombre de mis funciones, los parámetros y el mensaje de éxito en un archivo JSON local. Estoy comprobando la respuesta de mi base de datos con la respuesta JSON local. Estoy usando .then y .catch en todas partes. Estoy buscando limpiar un código con async await. ¿Cómo puedo usar async await aquí?
it('Check Authentication', (done) => { readFileData('checkAuth').then(({ params, message}) => { login.checkAuth({ ...params }) .then((result) => { assert(result.message === message); done(); }) .catch((err) => done(err)); }); });
Algo como esto. No lo he probado aunque. Básicamente, en lugar de .then()
, simplemente await
la llamada. Tenga en cuenta que hay async
antes de la devolución de llamada (done)
. .catch()
se puede capturar con el bloque try/catch
.
it('Check Authentication', async (done) => { let response = await readFileData('checkAuth'); try { let message = await login.checkAuth({ ...response.params }); // or w/e the response is // assert the message } catch (e) { // do something with the error } });
async
para usar `awaitawait
en el bloque try-catch
para manejar los erroresconst
para params
, message
y variables de result
, pero si va a reasignar valores más adelante en el código, puede usar let
en su lugar.done()
será una llamada asíncrona. Agregue await
delante de eso si también necesita eso para sincronizar la llamada it('Check Authentication', async (done) => { try { const { params, message } = await readFileData('checkAuth'); const result = await login.checkAuth({ ...params }); assert(result.message === message); done(); } catch (err) { done(err); } });