Attualmente utilizzo la libreria Q promise in un'app Node/amqp. Ho letto che le prestazioni delle librerie Q vs come BlueBird o Vow sono ... non così buone.Migrazione da Q a BlueBird (o Voto)
Sfortunatamente, non riesco a capire come usare BlueBird (o Vow) per sostituire i miei attuali schemi di utilizzo Q.
Ecco un esempio:
this.Start = Q(ampq.connect(url, { heartbeat: heartbeat }))
.then((connection) => {
this.Connection = connection;
return Q(connection.createConfirmChannel());
})
.then((channel) => {
this.ConfirmChannel = channel;
channel.on('error', this.handleChannelError);
return true;
});
avrei dovuto detto - sto usando dattiloscritto ... In questo esempio mi sto prendendo un amqplib promesse, e la creazione di un Q promessa fuori di esso (perché Non mi piacciono le promesse di amqplib). Come faccio a farlo con BlueBird o Vow?
Un altro esempio è:
public myMethod(): Q.Promise<boolean> {
var ackDeferred = Q.defer<boolean>();
var handleChannelConfirm = (err, ok): void => {
if (err !== null) {
//message nacked!
ackDeferred.resolve(false);
}
else {
//message acked
ackDeferred.resolve(true);
}
}
...some other code here which invokes callback above...
return ackDeferred.promise;
}
Come è che modello implementato?
Così le mie domande generale è:
- sono le differenze di prestazioni che ho letto sulla vera?
- Come faccio a migrare da Q a BlueBird o Voto, con un focus su questi due pattern (ma una spiegazione dell'uso di "then" sarebbe grande anche questa)?
diritta attraverso la mappatura - Sono fuori la 'Q '! – Michael