Trong Node.js, làm thế nào để bạn kết nối các phương thức lớp với nhau, khi nào thực hành tốt nhất để sử dụng các cuộc gọi lại?Phương pháp lớp chuỗi với gọi lại?
Trong những ngày PHP của tôi, tôi thường sẽ làm điều gì đó như thế này:
class MyClass {
function get() {
// fetch some data from an API endpoint
return this;
}
function set(property, value) {
// Set the property to some value on the object
return this;
}
function save() {
// Save the data to database
return this;
}
}
$myObject = new MyClass();
$myObject->set('something','taco')->save();
này tiếp cận OO rất phổ biến cho phép bạn phương pháp chuỗi lại với nhau nhiều lần như bạn muốn.
Khi làm việc với Node.js, bạn vẫn có thể thực hiện chuỗi tương tự như thế này? Hay bạn chỉ cần kết thúc trong địa ngục gọi lại? Mỗi "chuỗi" đơn lẻ là một cuộc gọi lại lồng nhau?
Hoặc tôi chỉ cần bao bọc tập lệnh của mình trong Lời hứa?
new Promise(function(resolve, reject){
var myObject = new MyClass();
myObject.set('something','taco');
resolve(myObject);
}).then(function(myObject){
myObject.save();
});
Đó có phải là cách bạn phải làm điều đó không? Có cách nào để tích hợp sâu hơn vào lớp học của tôi vì vậy tôi không phải quấn nó vào lời hứa mỗi lần? Tôi đã nhìn thấy một số thư viện có một loại "chế độ hứa hẹn" như https://github.com/sindresorhus/got nhưng sau khi xem mã tôi vẫn không chắc chắn chính xác cách họ đã làm.
này là những gì bạn đang tìm kiếm? https://github.com/kriskowal/q và https://www.npmjs.com/package/q –
Tôi cũng không sử dụng thư viện Promise với nút 4.x phải không? –
Tôi cho rằng có lẽ tôi chỉ cần trả lại Lời hứa mới trong mỗi phương pháp và cho phép tôi kết nối chúng bằng '.then'. Có đúng không? –