【发布时间】:2016-12-13 17:38:44
【问题描述】:
角度服务
this.sendCommand = function (someData) {
URL = myURL;
return $http({
method: 'POST',
url: URL,
data: someData
}).then(function (response) {
return response.data;
}).catch(function (error) {
console.log(error)
});
};
用例:用户可以通过单击一个按钮发送多个命令。例如,在请求 1 响应完成之前,请求 2 不应返回响应。如何使用上面的 sn-p 进行同步调用,这样即使用户多次点击一个按钮,正在发送的请求也会在队列中服务?
【问题讨论】:
-
为什么用例需要同步请求?
-
@HardikVaghani:$http 函数本身已经返回了一个 Promise 对象。这意味着几乎不需要创建新的 deferred 并将相关的 promise 传回,更不用说将解析和拒绝代码作为服务逻辑的一部分来处理。
-
@zeroflagL:因为接收请求的组件能够一次处理单个请求。
-
我明白,但请求本身不必是同步的。