Às vezes, os métodos em um pacote de nó fazem operações assíncronas e não têm variantes de sincronização. Usando ‘deasync’ podemos tornar isso uma brisa e manter seu código limpo.
Uso:
(substitua yourAsyncMethod
por sua função)
console.log('starting');
sync.do(function(){
yourAsyncMethod(function(){
console.log('operation done');
sync.done();
});
});
console.log('end');
Definição:
var sync = {
_deasync: require('deasync'),
_done: false,
do: function(callback, sleep) {
this._done = false;
callback();
while ( ! this._done) {
this._deasync.sleep(sleep ? sleep : 100);
}
},
done: function() {
this._done = true;
}
}