代码之家  ›  专栏  ›  技术社区  ›  noone000

我不应该在一个房间里采取行动吗。那你的声明呢?

  •  0
  • noone000  · 技术社区  · 7 年前

    我在git上找到了一个我想理解的代码,在代码中,这家伙有以下功能:

    export function startAddTodo(text) {
      return (dispatch, getState) => {
        const UID = firebase.auth().currentUser.uid;
        const todo = {
          text,
          isDone: false,
          isStarred: false
        };
        const todoRef = firebaseRef.child(`todos/${UID}`).push(todo);
    
        dispatch(addTodo({
          id: todoRef.key,
          ...todo
        }));
    
        todoRef.then(snapshot => {
          return;
        }, error => {
          Alert.alert(JSON.stringify(error.message));
        });
      };
    }
    

    为什么不应该是这样

    const todoRef = firebaseRef.child(`todos/${UID}`).push(todo);
    
    todoRef.then(snapshot => {
    
      dispatch(addTodo({
          id: snapshot.key,
          ...todo
        }));
    })
    

    我认为这是因为承诺可能会被拒绝,但在第一个代码中,他在尝试调用todoRef时可能会出错。输入分派方法。

    0 回复  |  直到 7 年前
    推荐文章