Разрабатывая успокоительное приложение с узлами, expressjs и sequelizejs, я обнаружил, что мой код выполняет много обратных вызовов.Sequelize.js создает слишком много обратных вызовов
В частности, когда я имею дело с объединением и созданием объекта в БД так:
// db is my database object
// here are my db entities : header, line and thing
// header has many line
// line belongs to header
// line has one thing
// thing has many line
db.line.create().success(function(line){
db.header.find({where:{id : header_id}}).success(function(header){
header.addLine(line).success(function(){
db.thing.find({where:{id : thing_id}}).success(function(thing){
line.setThing(thing).success(function(){
// OK
});
});
});
});
});
Я хотел использовать return
заявление внутри обратного вызова ошибки, но я не смог бы получить созданные данные.
Как вы думаете, есть ли другой способ совершать такие операции без всех обратных вызовов?
StrongLoop имеет хорошую статью, относящуюся к этому http://strongloop.com/strongblog/node-js- callback-hell-promises-generatorators/ – Jordonias
Я посмотрю, спасибо :) – nobe4
Sequelize 2.0 изначально поддерживает обещания через [Bluebird] (https://github.com/petkaantonov/bluebird) –