Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修复解析错误:无法使用关键字';等待&x27;在异步函数之外_Javascript_Asynchronous_Redux - Fatal编程技术网

Javascript 如何修复解析错误:无法使用关键字';等待&x27;在异步函数之外

Javascript 如何修复解析错误:无法使用关键字';等待&x27;在异步函数之外,javascript,asynchronous,redux,Javascript,Asynchronous,Redux,从下面的代码中获取一条错误消息,提示解析错误:无法在异步函数外部使用关键字“wait”,以执行Redux操作 写这个的正确方法是什么 export async function getData() { return (dispatch) => { try { const data = await API.graphql(graphqlOperation(query)) dispatch({ type: "DATA_AVAILABLE", data: da

从下面的代码中获取一条错误消息,提示解析错误:无法在异步函数外部使用关键字“wait”,以执行Redux操作

写这个的正确方法是什么

export async function getData() {
  return (dispatch) => {
    try {
      const data = await API.graphql(graphqlOperation(query))
      dispatch({ type: "DATA_AVAILABLE", data: data.data.listData.items });
    } catch(err) {
      console.log('error: ', err)
    }
  }
}

对于
内部
函数,您需要有
async
关键字

export function getData() {
  return async (dispatch) => {
    try {
      const data = await API.graphql(graphqlOperation(query))
      dispatch({ type: "DATA_AVAILABLE", data: data.data.listData.items });
    } catch(err) {
      console.log('error: ', err)
    }
  }
}

对于
内部
函数,您需要有
async
关键字

export function getData() {
  return async (dispatch) => {
    try {
      const data = await API.graphql(graphqlOperation(query))
      dispatch({ type: "DATA_AVAILABLE", data: data.data.listData.items });
    } catch(err) {
      console.log('error: ', err)
    }
  }
}

您也可以从返回函数中提取等待函数,并将
dispatch
作为参数传递给
getData
函数

export async function getData(dispatch) {
  const data = await API.graphql(graphqlOperation(query))
  dispatch({ type: "DATA_AVAILABLE", data: data.data.listData.items });
}
那么你叫它:

var dispatchFunc = function (params) {console.log(params);}
getData(dispatchFunc).then(function() {}).catch(function(err) { ... })

您也可以从返回函数中提取等待函数,并将
dispatch
作为参数传递给
getData
函数

export async function getData(dispatch) {
  const data = await API.graphql(graphqlOperation(query))
  dispatch({ type: "DATA_AVAILABLE", data: data.data.listData.items });
}
那么你叫它:

var dispatchFunc = function (params) {console.log(params);}
getData(dispatchFunc).then(function() {}).catch(function(err) { ... })


return(dispatch)=>{
不是
async
return async(dispatch)=>{
export async function getData()中不需要异步
@CertainPerformance也尝试了
export const getUserJournals=()=>async(dispatch)=>{…}
但不起作用:(
return(dispatch)=>{
不是
async
返回async(dispatch)=>{在
导出异步函数getData()中不需要异步
@CertainPerformance也尝试了
导出const getUserJournals=()=>异步(dispatch)=>{…}
,但没有成功:(感谢您的评论!错误消息消失了,但仍然没有从API中获取数据…当它在我的开发环境中使用AWS amplify时,它实际上似乎可以工作,但在我的本地环境中不工作。不确定为什么会出现qraphql查询在您的本地环境中无法正常工作的情况。您知道在我的本地环境中调试它吗?这是工作!我在其他地方遇到了一个问题。谢谢你的回答。谢谢你的评论!错误消息消失了,但仍然无法从API获取数据…当它在我的开发环境中使用AWS amplify时,它实际上似乎可以工作,但在我的本地环境中不工作。不确定为什么会出现qraphql查询不工作的情况特别是在您的本地有没有想法在我的本地调试它?这很有效!我在其他地方遇到了一个问题。谢谢您的回答。Getting
错误:TypeError:dispatch不是一个函数更新了我的解释更新了我的postGetting
Uncaught(承诺中)TypeError:dispatch这次不是一个函数
。但是你应该以函数形式传递dispatch
错误:TypeError:dispatch不是一个函数
更新了我的解释更新了我的postGetting
未完成(承诺)TypeError:dispatch这次不是一个函数
。但是你应该以函数形式传递dispatch