如何在此函数中超时后返回值
$get: function($timeout) {
var breadcrumbs;
data = [];
$timeout(function() {
data = crateBreadcrumbs();
console.log(data);
});
return data;
答案 0 :(得分:2)
你需要回复一个承诺。承诺将表示您尚未返回数据,但是一旦您的$ timeout服务完成,您将解决该承诺。
您可以使用$q
服务来实现此目的。 docs
基本上,
function($timeout) {
var deferred = $q.defer();
$timeout(function() {
data = createBreadcrumbs();
deferred.resolve(data);
}, 1000);
return deferred.promise;
}
Per @ Bergi的评论,
$get: function($timeout) {
return $timeout(function() { return createBreadcrumbs();})
}