使用react native异步返回一个值

时间:2018-01-22 13:00:56

标签: javascript reactjs react-native

我在react-native中创建了一个看起来像这个的函数

static async myFunction(){
  await RNSFAuthenticationSession.getSafariData(url,scheme).then(async (callbackUrl) => {
    const isValid = await MyClass.checkIfValid(data);
    if (isValid) {
      return true;
    } else {
      return false;
    }
}

我以这种方式称呼它

const isValid = await MyClass.myFunction();
alert(isValid); // undefined

isValid包含undefined值。你知道我怎么解决这个问题?

1 个答案:

答案 0 :(得分:1)

你忘记归还Promise

static async myFunction(){
   return await RNSFAuthenticationSession.getSafariData(url,scheme).then(async (callbackUrl) => {
   const isValid = await MyClass.checkIfValid(data);
   if (isValid){
      return true;
   } else {
      return false;
   }
}

您可以简化代码

static myFunction() {
   return RNSFAuthenticationSession.getSafariData(url, scheme)
      .then(() => MyClass.checkIfValid(data))
}