如何设计具有同步或异步响应的API
How to design API that can have either synchronous or asynchronous response
我需要我的服务层支持在应用程序在线时发出http请求,并在应用程序离线时保存请求,然而这导致响应要么是应用程序在线时的承诺,要么是应用程序离线时的同步。我现在有
someService.save(data).then(function(response) {
performSomeAction();
});
然而someService的实现将变成
if (isOnline()) {
return http.post()
} else {
cachePostForLater();
}
从控制器层尝试隐藏在线/离线保存的复杂性,从服务返回的最好的东西是什么?
你的同步函数应该返回一个你手动解析的承诺。这样,调用api服务的代码就可以不知道调用是否在在线时进行。如果您将$q
作为服务的依赖项,您可以执行
function save(){
if (isOnline()) {
return http.post()
} else {
cachePostForLater();
return $q.resolve(null);
}
}
相关文章:
- 如何从SeleniumWebdriver获取异步Javascript响应
- 使用来自不同异步函数的响应创建一个json对象
- 节点.js和表达式:如何在异步操作后返回响应
- 异步表单w/Iframe Target——OnLoad适用于FF、Chrome、IE9,不适用于;无法在IE7中得到响应
- Node.JS-如何识别哪个异步HTTPGET响应在回调中返回数据
- 接收json异步响应的最有效方式
- 如何使用 ajax 或 jquery 读取异步 HTTP (servlet3.0) 响应
- 如何将异步 ajax 响应捕获到变量中
- 函数返回异步响应
- 如何从 angularjs 服务中的异步调用返回响应
- 来自 Azure 的插入异步响应
- 节点JS-异步-响应是在执行查询时发送的
- 在服务器端的节点中处理异步响应
- 在sails.js中返回异步响应
- 如何在应用中使用异步响应值.得到的回调
- AngularJS的承诺在没有等待异步响应的情况下被拒绝(它应该会被解析)
- AJAX异步响应回调
- 如何设计具有同步或异步响应的API
- IndexedDB和异步响应
- Node JS异步响应