Tôi đã đập đầu vào bức tường này trong 3 ngày qua.Gọi điện thoại đường dây với các lời hứa
Tôi đang sử dụng sailsjs & ORM đường nước đi kèm. Tôi muốn chạy DB gọi một cái khác. Tôi biết tôi có thể làm điều này bằng cách lồng vào bên trong "sau đó" cuộc gọi nhưng nó chỉ có vẻ sai.
tôi đã giới thiệu tài liệu Q và hướng dẫn nhiều lần nhưng tôi vẫn không nhận được như thế nào để kết nối và lửa "sau đó" cuộc gọi từ Promises hiện tuần tự :(
Tôi muốn:
- tạo một người dùng
- tạo một hành động
- liên kết người dùng & hành động
- cập nhật người dùng
- cập nhật hành động
Mã của tôi trông giống như
var mail = '[email protected]';
Users.create({email:mail, name:''}).then(console.log).fail(console.log);
Actions.create({actionID:123})
.then(function(error, action){
Users.findOneByEmail(mail).then(function(person){
person.actions.add(action.id);
person.save(console.log);
}).fail(console.log)
});
Users.update({email:mail},{name:'Brian'}).exec(console.log);
Actions.update({actionID:123},{now:'running'}).exec(console.log);
Như bạn có thể nhìn thấy từ đoạn code tôi đã sử dụng một hỗn hợp của exec & sau đó: P
Tôi nghĩ rằng con đường là để kết nối các Users.create (...). sau đó -> Action.create (...). sau đó -> Users.findOneByEmail (...). sau đó -> * và cập nhật.
lớn nhờ từ bất kỳ sự giúp đỡ
'Không' của bạn sẽ không hoạt động và thích' bắt'. Khác hơn là công việc tốt! –
Cảm ơn @BenjaminGruenbaum Tôi không biết liệu mình có cần một công thức cuối cùng() hoặc sau đó() ví dụ'}). Sau đó(). Fail ('. Điều này có làm việc không? HOẶC hoán đổi lỗi (...) cho một catch (...) là những gì bạn có ý nghĩa? – codemeasandwich
Cũng trên http://documentup.com/kriskowal/q/#tutorial ví dụ đầu tiên có 'bắt (...). done();' Tại sao chúng ta cần ** thực hiện ** cuối cùng? – codemeasandwich