Bluebird có chức năng promisifyAll là "Khuyến khích toàn bộ đối tượng bằng cách xem các thuộc tính của đối tượng và tạo một tương đương async của từng chức năng trên đối tượng và chuỗi mẫu của nó."Bluebird PromisifyAll không có bất kỳ hậu tố Async nào, tức là thay thế các chức năng gốc có thể?
Nó tạo các hàm có hậu tố Async
.
Có thể thay thế hoàn toàn các chức năng cũ không? Các hàm được thay thế hoạt động giống như các hàm ban đầu với phần bổ sung mà chúng cũng trả về một Promise, vì vậy tôi nghĩ sẽ an toàn khi chỉ thay thế hoàn toàn các hàm cũ.
var object = {};
object.fn = function(arg, cb) { cb(null,1) };
Bluebird.promisifyAll(object);
object.fn // do not want
object.fnAsync // => should replace `object.fn`
Có một tùy chọn để chỉ định một tùy chọn tùy chỉnh suffix nhưng tiếc là nó không làm việc cho chuỗi rỗng
Bluebird.promisifyAll(object, {suffix: ''});
RangeError: suffix must be a valid identifier
Tôi nghĩ, bạn nên đăng một yêu cầu tính năng trên [theo dõi vấn đề bluebird] (https://github.com/petkaantonov/bluebird/issues). –
Tôi không nghĩ rằng điều này là có thể, bởi vì hiện tại, việc tạo ra các phương thức chỉ gọi 'this.fn (…)' để chúng bị bắt trong một đệ quy vô hạn nếu bạn ghi đè 'fn'. – Bergi