如何从异步函数中提取输出-react-native?

时间:2018-08-10 12:18:54

标签: javascript react-native

我有一个问题。 如何从异步函数获得结果?

这是我的代码:

function kakaoLogin() {
  return async dispatch => {
    RNKakaoLogins.login((err, result) => {
      console.log(result);
    });
    console.log(result);
  };
}

这是结果。 enter image description here

第一个console.log(result)显示令牌!。 但是第二个console.log(result)没有显示任何内容。

我想从第二个console.log(结果)获得与第一个console.log(结果)相同的结果

1 个答案:

答案 0 :(得分:2)

function kakaoLogin() {
  return async dispatch => {
    RNKakaoLogins.login((err, result) => {
      console.log(result);
    });
    console.log(result); // calling result outside its scope will not work
  };
}

对空结果的期望是什么?您正在块之外使用result。 如果您想做些回应。那么您可以像这样进行方法调用。

function kakaoLogin() {
  return async dispatch => {
    RNKakaoLogins.login((err, result) => {
      console.log(result);
      doSomeWork(result);
      // you can call another method here when you get response.
    });
  };
}

function doSomeWork(result){
.. somework
}