boo*_*oni 2 javascript promise angularjs
我正在写一个Angular应用程序.我需要方法getData()来始终返回一个promise.因此,如果从本地存储中检索数据并且它不为null,则应该将其作为promise返回,而不调用$ http.get part.
我怎么写呢?
getData() {
var data = localStoradge.getItem('data');
if (data == null) {
return $http.get('url').then(function(response){
data = response;
return data
})
}
}
Run Code Online (Sandbox Code Playgroud)
jfr*_*d00 12
如果数据已经可用,则返回已解决的promise(使用ES6语法):
function getData() {
var data = localStorage.getItem('data');
if (data == null) {
return $http.get('url');
} else {
// return promise that is already resolved
return Promise.resolve(data);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以始终使用该接口作为承诺数据是否已经可用.
注意:由于您在.then()
处理程序中所做的只是返回数据,因此您可以完全删除它.
或者,使用$ q Angular语法,它看起来像这样:
function getData() {
var data = localStorage.getItem('data');
if (data == null) {
return $http.get('url');
} else {
// return promise that is already resolved
return $q.resolve(data);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9708 次 |
最近记录: |