我有方法callServer
,它返回一个promise。基本上它调用后端服务并提供数据。现在在下一个方法getAccountAndRelatedContacts
中,我首先获得帐户和相关联系人。所以我将不得不拨打服务器2次。现在我想了解实现getAccountandRelatedContacts
方法的最佳方法是什么,记住不仅数据而且错误都应该传播回去。
var callServer = function(query){
return new Promise(function(resolve,reject){
if(query){
resolve('Some result'+ query);
}else {
reject('inside the resolve');
}
})
}
实施方法1:
var getAccountAndRelatedContacts = function(){
return callServer('Select * from Account')
.then(function(res){
return callServer('select * from Contact where Account.Id = '+res.Id)
})
}
实施方法2:
var getAccountAndRelatedContacts = function(){
return new Promise(function(resolve, reject){
callServer('Select * from Account')
.then(function(res){
return callServer('select * from Contact where Account.Id = '+res.Id)
}).then(function(res){
resolve(res);
}).catch(function(err){
reject(err);
})
});
}
最后调用方法:
//actual Call
getAccountAndRelatedContacts().then(function(results){
console.log(results);
})