连锁店;然后";angularjs中的请求
我的控制器中有两个调用,它们使用服务并返回一些数据。我的第二个调用取决于第一个调用的结果。如何链接两个调用并仅在第一个调用为resolve时从第二个调用获取数据连锁店;然后";angularjs中的请求,angularjs,Angularjs,我的控制器中有两个调用,它们使用服务并返回一些数据。我的第二个调用取决于第一个调用的结果。如何链接两个调用并仅在第一个调用为resolve时从第二个调用获取数据 InviteFriendsCodeService.getLeagueCode().then( (resp) => { ctrl.invitationCode = resp.data.data.leagues[0].code; return false; }); InviteFriendsCodeService.ge
InviteFriendsCodeService.getLeagueCode().then( (resp) => {
ctrl.invitationCode = resp.data.data.leagues[0].code;
return false;
});
InviteFriendsCodeService.getInviteLink().then( (resp) => {
ctrl.recruitCode = resp.data.data.code;
ctrl.invitationLink = `${window.location.origin}/registration/?recruit=${ctrl.recruitCode}&league=${ctrl.invitationCode}`
return false;
});
我认为您的两个调用都是相互独立的(因为您没有使用第一个调用的响应来触发第二个调用) 因此,您可以同时触发它们,并在它们解析时指定控制器成员。像这样:
Promise.all([
InviteFriendsCodeService.getLeagueCode(),
InviteFriendsCodeService.getInviteLink()
]).then(function(resp) {
ctrl.invitationCode = resp[0].data.data.leagues[0].code;
ctrl.recruitCode = resp[1].data.data.code;
ctrl.invitationLink = `${window.location.origin}/registration/?recruit=${ctrl.recruitCode}&league=${ctrl.invitationCode}`
});
我认为您的两个调用都是相互独立的(因为您没有使用第一个调用的响应来触发第二个调用) 因此,您可以同时触发它们,并在它们解析时指定控制器成员。像这样:
Promise.all([
InviteFriendsCodeService.getLeagueCode(),
InviteFriendsCodeService.getInviteLink()
]).then(function(resp) {
ctrl.invitationCode = resp[0].data.data.leagues[0].code;
ctrl.recruitCode = resp[1].data.data.code;
ctrl.invitationLink = `${window.location.origin}/registration/?recruit=${ctrl.recruitCode}&league=${ctrl.invitationCode}`
});
如果您从
函数返回另一个承诺,那么
函数的原始承诺将与返回的承诺解析为什么进行解析,从而允许您将这两个承诺链接起来:
InviteFriendsCodeService.getLeagueCode()
.then( (resp) => {
ctrl.invitationCode = resp.data.data.leagues[0].code;
return InviteFriendsCodeService.getInviteLink();
}).then( (resp) => {
ctrl.recruitCode = resp.data.data.code;
ctrl.invitationLink = `${window.location.origin}/registration/?recruit=${ctrl.recruitCode}&league=${ctrl.invitationCode}`
return false;
});
如果您从
函数返回另一个承诺,那么
函数的原始承诺将与返回的承诺解析为什么进行解析,从而允许您将这两个承诺链接起来:
InviteFriendsCodeService.getLeagueCode()
.then( (resp) => {
ctrl.invitationCode = resp.data.data.leagues[0].code;
return InviteFriendsCodeService.getInviteLink();
}).then( (resp) => {
ctrl.recruitCode = resp.data.data.code;
ctrl.invitationLink = `${window.location.origin}/registration/?recruit=${ctrl.recruitCode}&league=${ctrl.invitationCode}`
return false;
});
在第一次承诺之前写下你的第二个电话
invitefriendscodesvice.getLeagueCode()。然后((resp)=>{
ctrl.invitationCode=resp.data.data.leagues[0]。代码;
InviteFriendsCodeDevice.getInviteLink()。然后((resp)=>{
ctrl.createcode=resp.data.data.code;
ctrl.invitationLink=`${window.location.origin}/registration/?recruit=${ctrl.RecruiteCode}&league=${ctrl.invitationCode}`
返回false;
});
返回false;
});代码>在第一次承诺中写下你的第二个电话
invitefriendscodesvice.getLeagueCode()。然后((resp)=>{
ctrl.invitationCode=resp.data.data.leagues[0]。代码;
InviteFriendsCodeDevice.getInviteLink()。然后((resp)=>{
ctrl.createcode=resp.data.data.code;
ctrl.invitationLink=`${window.location.origin}/registration/?recruit=${ctrl.RecruiteCode}&league=${ctrl.invitationCode}`
返回false;
});
返回false;
});代码>谢谢你的回答,它在工作,但批准的一个更适合我的任务谢谢你的回答,它在工作,但批准的一个更适合我的任务