Usando node.js versión 7.7.2, me gustaría ejecutar una función asíncrona y luego una función diferente una vez que la primera función se haya completado así:
function foo() { return new Promise(function(resolve, reject) { // Do some async stuff console.log('foo is about to resolve'); resolve(); }); } function bar(arg) { console.log(arg); } foo().then(bar('bar has fired'));El problema es que esta configuración imprime 'bar ha disparado' seguido de 'foo está a punto de resolverse'. Lo que espero es que la barra espere para disparar hasta que la promesa devuelta por foo se haya resuelto. ¿Estoy malinterpretando cómo then() pone en cola las devoluciones de llamada en el bucle de eventos node.js?
Gracias
Como se indica en un comentario, pase una función a la que, cuando then llame, llamará a la bar con sus parámetros.
function foo() { return new Promise(function(resolve, reject) { // Do some async stuff console.log('foo is about to resolve'); resolve(); }); } function bar(arg) { console.log(arg); } foo().then(function(){bar('bar has fired')});