【发布时间】:2018-09-24 23:47:05
【问题描述】:
我的 Angular v1.x 指令在单击按钮时调用一个函数,并根据输入设置一些变量:
$scope.offerRespond = function() {
if (offer.i.offerResponse == 1) {
// set some variables
}
else if (offer.i.offerResponse == 0) {
$http({method: 'GET', url: frontbaseurl+'/offer_types/' + id + '.json'})
.then(function successCallback(response) {
$scope.reason = response.data.data.name;
}, function errorCallback() {
$scope.reason = "Unknown";
}
);
$http.post(frontbaseurl+'/purchases.json', JSON.stringify(dataObj))
.then(function(response){
// continue....
}
}
可以看出,如果 offerResponse == 0,我会发出 GET 请求。这似乎有风险,因为在收到请求的响应之前代码会继续执行。我知道方法是使用“承诺”,但如果无法发出 GET 请求,在这种情况下如何应用?
我看到的问题是,如果我添加一个承诺并且 offerResponse == 1,则该承诺将无法实现,因为不会发出 GET 请求。
有什么建议吗?
【问题讨论】:
标签: angularjs promise get request