javascript - 使用 async 和 await with export const

标签 javascript reactjs react-native

我无法完成这项工作...它说:await 是一个保留字。是的,当然是……而且我想使用它:)

怎么了?

export const loginWithToken = async () => {
  return dispatch => {
    dispatch({type: SESSION_LOGIN_IN_PROGRESS, payload: true})
    let storedData = await ReadFromLocalDB('user')
    console.log(storedData)
    if (!storedData) {
        invalidToken(null, dispatch)
    }
    else {
        storedData = JSON.parse(storedData)
        SessionLoginWithToken(storedData.session.token).then(res => {
            console.log(res)
            loginSuccessfully(res, dispatch, true)
        })
    }
  }
}

我的 ReadFromLocalDB 函数如下所示:

export const ReadFromLocalDB = async (key) => {
   return AsyncStorage.getItem(key)
}

它返回一个 promise

最佳答案

return dispatch => {...} 我相信也需要 async。现在,只有顶级函数是 async,而不是嵌套函数。

// This function is async
export const loginWithToken = async () => {
  // This one is not though which means it can't use await inside
  // return dispatch => {

  // Instead it should likely be:
  return async dispatch => {
    dispatch({type: SESSION_LOGIN_IN_PROGRESS, payload: true})
    let storedData = await ReadFromLocalDB('user')
    console.log(storedData)
    if (!storedData) {
        invalidToken(null, dispatch)
    }
    else {
        storedData = JSON.parse(storedData)
        SessionLoginWithToken(storedData.session.token).then(res => {
            console.log(res)
            loginSuccessfully(res, dispatch, true)
        })
    }
  }
}

关于javascript - 使用 async 和 await with export const,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50804207/

相关文章:

javascript - Cordova:使用 javascript api 登录 facebook 不工作

javascript - 使用 Javascript 将表拆分为一行的单独表

javascript - 如何模拟在 jest/enzyme 中传递给wrapper.instance().method 的参数?

javascript - Highcharts 可以制作发散图吗?

typescript - 如何配置 Jest 以转换包含无效语法的模块?

javascript - 为什么我们在react native router flux中需要一个 "root"的场景

javascript - react native : onContentSizeChange event on TextInput element does not work on Android

javascript - 从选择框中返回一个整数 - JavaScript

javascript - 平滑滚动导航 - 将类添加到事件链接

javascript - webpack 5 模块联合中共享依赖项的树抖动