我正在努力解决以下语法的问题:
export const sendVerificationEmail = async () =>
(dispatch) => {
try {
dispatch({ type: EMAIL_FETCHING, payload: true });
await Auth.sendEmailVerification();
dispatch({ type: EMAIL_FETCHING, payload: false }))
} catch (error) {
dispatch({ type: EMAIL_FETCHING, payload: false });
throw new Error(error);
}
};
字符串
我不断得到错误说:
await是保留字
.但这不是法律的在一个联邦调查局的职能?
调度位来自react-thunk库。
2条答案
按热度按时间zy1mlcev1#
为了使用
await
,直接封装它的函数需要是cndc。根据你的评论,将async
添加到内部函数解决了你的问题,所以我将在这里发布:字符串
可能的话,你可以从外部函数中删除
async
,因为它不包含任何异步操作,但这取决于sendVerificationEmail()
的调用者是否期望它返回一个promise。wj8zmpe12#
解决方案
直接在使用
async
的范围内使用await
,并删除顶部范围async
,因为它是冗余的。正确的写法是:
字符串
Escene
你有错误,因为你使用
await
关键字没有async
直接在作用域与await
,你有两个函数,一个在另一个里面,你有async
在顶部的一个,但不是在内部的一个,在那里它的问题。错误的方式:
型
由此,将生成一个错误(Chrome提供的最新错误):
Uncaught SyntaxError: await is only valid in async functions and the top level bodies of modules
*参考
Async Functions
第一个字符一个promise函数是一个使用promise关键字声明的函数,并且允许在其中使用await关键字。promise和await关键字使异步的、基于promise的行为能够以更干净的风格编写,从而避免了显式配置promise链的需要。