連絡先を検証して保存するための同期動作にステップ ライブラリを使用しています。
以下は、私が現在使用しているコードです
exports.actions = function(req, res, ss) {
var Step= require('step');
req.use('session');
return {
addCon:function(contactObject){
Step(
function validation(){
var accounts =contactObject.contacts.accounts;
accounts.forEach(function(){
//database call
services.user.get(updateObj,function(err,rec){
if(err || rec == null)
{
res("Saving Contact Failed,user Does Not Exist");
//here responding to client for showing alert message
return false;
}
if(userId === rec.friendId){
res("Error");
//here responding to client for showing alert message
return false;
}
});
});
},
function saving(){
//saving
}
,
function pusblishing tofriend(){
//stuff
}
)
}
}
}
実際には、検証関数でエラーが発生した場合、保存関数をスキップしたいと考えています。ループを壊して false を返すというアイデアは機能しません。