链接angularjs rest端点访问
Chaining angularjs rest endpoint access
为了尝试按顺序运行angularjs rest,我将初始函数延迟1秒,下一个函数延迟2秒:
setTimeout(function () {
$http.get("/rest1")
.then(function(response) {
$scope.val1 = response.data;
});
}, 1000)
setTimeout(function () {
$http.get("/rest2")
.then(function(response) {
$scope.val2 = response.data;
});
}, 2000)
这种方法是有问题的,因为它不能保证第二个rest
函数会在第一个函数之后运行(尽管这是很有可能的)。
这些rest
调用可以被链接以便保证rest1
将在rest2
之后执行吗?
我最新的教程之一介绍了这种http请求链:https://tutorialedge.net/angularjs-promises-tutorial
将其包装在超时函数中基本上是错误的方法。正如你所说,这些承诺"极有可能"一个接一个地出现。看看那篇文章的链接承诺部分,你会看到如何保证顺序执行!
下面是那篇文章的代码示例摘录!
// first chop our
$http.get('api/chop/onions')
.then(function success(response){
// once that is done chop our carrots
return $http.get('api/chop/carrots');
})
.then(function success(response){
// once the carrots are done, add both to the stew
return $http.get('api/add/onionsAndCarrots');
})
.then(function success(response){
// serve our stew
});
绝对不要在不可预测的时间上使用计时器。
使用承诺链,例如:
$http.get("/rest1")
.then((rest1Data) => {
$scope.val1 = rest1Data.data;
})
.then(() => {
return $http.get('/rest2');
}).
.then((rest2Data) => {
$scope.val2 = rest2Data.data;
});
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 如何从对象的原型方法访问JavaScript对象属性
- 访问json数组中的对象
- 无法从 chrome 扩展程序访问端点 API
- Highcharts-防止访问极端点
- 从服务器控制器访问 MEANjs 中的 API 端点
- 从javascript访问我的应用引擎端点
- 链接angularjs rest端点访问
- 如何访问WebSocket端点
- 使用D3.JS访问同一网站上的API端点