我已经进行了搜索和实验,似乎没有任何东西像我想要的那样工作。如果有人有任何建议,请发表任何想法。
所以这就是我希望它发挥作用的方式。
var myfunc = function(args) {
var result = null;
result = __myservice.$loaded().then(function(data) {
return data;
});
return result;
}
如果有人知道怎么做,请返回NULL,请告诉我。
编辑:(添加服务/工厂代码)
这是使用angularfire种子fyi,大部分代码都没有改变,所以fbutil是来自angularseed的那个,我相信也有Auth内置。
app.factory('circlesList', ['fbutil', '$firebaseArray', function(fbutil, $firebaseArray) {
var ref = fbutil.ref('circles');
return $firebaseArray(ref);
}]);
答案 0 :(得分:1)
数据以异步方式加载(和同步)。你正在尝试的是绕开现代网络的异步性质。但遗憾的是,您还无法返回尚未从服务器返回的 now 。
请参阅此参考问题以获得一个很好的解释:How do I return the response from an asynchronous call?
您可以返回$loaded()
承诺,它允许调用函数执行then()
部分。
请注意,$loaded()
可能仅在加载初始数据时触发。当您使用Firebase时,最好放弃这种请求/响应思维模式,而是根据“每当此数据发生变化时,我想做ABC”来重新定义您的目标。