通过javascript

时间:2018-03-15 10:50:54

标签: javascript promise

我有方法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);
})

0 个答案:

没有答案