订阅后返回Observable

时间:2018-05-13 11:11:15

标签: firebase firebase-realtime-database angular5

export function loginUser(email, password) {
  return function (dispatch) {
    return axios.post(SIGNIN_URL, { email, password }).then((response) => {
      var { user_id, token } = response.data;
      dispatch(authUser(user_id, token));
      onSignIn(user_id);
    }).catch((error) => {
      dispatch(addAlert("Could not log in."));
    });
  };
}

export const authUser = (user_id, token) => {
  return {
    type: 'AUTH_USER',
    user_id,
    token
  }
}

orgsArr在subscribe()

之前重新生成

1 个答案:

答案 0 :(得分:0)

您将异步代码与同步代码混合在一起。您的方法会在可观察的javac hello/Main.java调用中调用hello/Main.java:3: error: package func does not exist import func.*; ^ hello/Main.java:7: error: cannot find symbol Func.hello(); ^ symbol: variable Func location: class Main 2 errors ,该调用在您返回时不会执行orgsArr.push

你也错误地使用了.map上的地图,因为地图意味着返回一些东西并构造一个数组。

您可以重新考虑这一点,使用Observable.of(orgsArr)从映射的organizations.map组织中返回所有Observable,然后使用concat将值流转换为单个数组:

valueChanges()