我正在尝试使用 $q 服务在 Angular 中创建一个承诺。
它返回从 Web 服务检索的对象。如果该对象在缓存中,则返回该对象而不调用 Web 服务。
问题是这两个解析被调用。
也许,我使用的是承诺反模式吗?
这是我的代码:
function returnMapAsync() {
return $q(function (resolve, reject) {
if (navigationMap) {
resolve(navigationMap);
} else {
ServerRequest.getNavigationMap().then(function (data) {
navigationMap = data.object;
resolve(navigationMap);
});
}
});
}
谢谢
你不需要把所有东西都包裹在$q()
称呼。为了许诺 navigationMap
use $q.when:
function returnMapAsync() {
if (navigationMap) {
return $q.when(navigationMap);
}
return ServerRequest.getNavigationMap();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)