私はpromiseに本当に慣れていません(expressjsでbluebirdのpromiseを使用しています)。彼らがコードを整理する方法が好きです。ただし、いくつかのシナリオでそれらを使用する方法がよくわかりません。私の例でそれらを正しく使用しているかどうかさえわかりません。
私が抱えている問題は、約束の「.then」部分に真実または偽りを渡したいということです。詳細については、以下のコードにコメントしました。
前もって感謝します!
//data is an array of javascript objects
Promise.each(data, function(d){
delete d.offset;
if (d.driver_id == -1) d.driver_id = null;
Promise.try(function(){
return new Term().where({'date_of_driving': d.date_of_driving}).fetch()
})
.then(function(result){
d.updated_at = dater.formatDate(new Date(), true);
if (result !== null) {
//update
var res = result.toJSON();
return new Term({'id': res.id}).save(d);
} else {
//save
d.created_at = dater.formatDate(new Date(), true);
return new Term().save(d);
}
}).then(function(item){
//I need to know here if before I saved or updated Term record
//is there a way to pass a truthy or falsy variable?
})
})
.then(function(terms){
})
.catch(function(error){
callback(false);
});