Angularfire $ loaded()。然后(从这里返回一些东西)

时间:2015-11-12 15:36:55

标签: javascript angularjs firebase angularfire

我已经进行了搜索和实验,似乎没有任何东西像我想要的那样工作。如果有人有任何建议,请发表任何想法。

所以这就是我希望它发挥作用的方式。

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);
}]);

1 个答案:

答案 0 :(得分:1)

数据以异步方式加载(和同步)。你正在尝试的是绕开现代网络的异步性质。但遗憾的是,您还无法返回尚未从服务器返回的 now

请参阅此参考问题以获得一个很好的解释:How do I return the response from an asynchronous call?

您可以返回$loaded()承诺,它允许调用函数执行then()部分。

请注意,$loaded()可能仅在加载初始数据时触发。当您使用Firebase时,最好放弃这种请求/响应思维模式,而是根据“每当此数据发生变化时,我想做ABC”来重新定义您的目标。