secuencialmente secuencial pagina orden funciones funcion ejecutar ejecucion cargar carga asincronismo asincronia asincronas asincrona antes javascript asynchronous mocha

javascript - pagina - jquery ejecucion secuencial



Función asíncrono en moca antes() está terminado todos los días antes de que Spec()? (1)

Para las nuevas versiones moca:

Ahora puede volver una promesa de moca, moca y va a esperar a que se complete antes de continuar. Por ejemplo, la siguiente prueba pasará:

let a = 0; before(() => { return new Promise((resolve) => { setTimeout(() => { a = 1; resolve(); }, 200); }); }); it(''a should be set to 1'', () => { assert(a === 1); });

Puede encontrar la documentación here

Para versiones anteriores moca:

Si desea que su solicitud asincrónica para ser completado antes que nada sucede, es necesario utilizar el done de parámetro en la solicitud antes, y lo llaman en la devolución de llamada.

Mocha entonces esperar hasta done es llamado para iniciar el procesamiento de los siguientes bloques.

before(function (done) { db.collection(''user'').remove({}, function (res) { done(); }); // It is now guaranteed to finish before ''it'' starts. }) it(''test spec'', function (done) { // execute test }); after(function() {});

Usted debe tener cuidado sin embargo, como no golpearse la base de datos para las pruebas unitarias puede ralentizar enérgicamente la ejecución, como las solicitudes en una base de datos pueden ser bastante larga en comparación con la ejecución de código simple.

Para obtener más información, consulte la documentación de Mocha .

Tengo una función de devolución de llamada before() que es para la limpieza de la base de datos. Es todo en la before() garantiza que terminar antes de it() comienza?

before(function(){ db.collection(''user'').remove({}, function(res){}); // is it guaranteed to finish before it()? }); it(''test spec'', function(done){ // do the test }); after(function(){ });