Tôi hiện đang sử dụng thư viện lời hứa Q trong ứng dụng Node/amqp. Tôi đã đọc rằng hiệu suất của Q vs các thư viện như BlueBird hoặc Vow là ... không tốt lắm.Di chuyển Q sang BlueBird (hoặc Lời thề)
Thật không may, tôi không thể tìm ra cách sử dụng BlueBird (hoặc Vow) để thay thế các mẫu sử dụng Q hiện tại của tôi.
Dưới đây là một ví dụ:
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;
});
tôi nên đã đề cập - Tôi đang sử dụng nguyên cảo ... Trong ví dụ này tôi lấy một lời hứa amqplib, và tạo ra một lời hứa Q ra khỏi nó (vì Tôi không thích những lời hứa amqplib). Làm thế nào để tôi làm điều đó với BlueBird hoặc Vow?
Một ví dụ khác là:
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;
}
như thế nào mô hình mà thực hiện?
Vì vậy, câu hỏi chung của tôi là:
- Are sự khác biệt hiệu suất Tôi đã đọc về đúng không?
- Làm cách nào để di chuyển từ Q sang BlueBird hoặc Vow, tập trung vào hai mẫu đó (nhưng giải thích về việc sử dụng 'then' cũng sẽ tuyệt vời)?
Straight trên bản đồ - Tôi ra khỏi 'Q '! – Michael