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(){
});