我正在尝试使用 sagas 中间件通过 firebase 设置 redux 注册和身份验证流程。但是我得到:
Module build failed: SyntaxError: Unexpected token (16:3)
14 | registerUser(action.creds).then(response => {
15 | if(response.payload.errorCode)
> 16 | yield put({type: 'REGISTRATION_FAILED', message: {msg_type: 'error', msg_body: response.payload.errorMessage}})
| ^
17 | else
18 | yield put({type: 'REGISTRATION_SUCCESSFUL', user: response})
19 | });
有点通用,但是围绕它移动那行代码似乎 yield 特别不喜欢在回调中。但是,我看不到任何特别禁止这样做的地方。有没有更好的方法来做到这一点?这是传奇生成器。
export function* registerUserSaga(action){
console.log('registerUser called')
console.log(action)
registerUser(action.creds).then(response => {
if(response.payload.errorCode)
yield put({type: 'REGISTRATION_FAILED', message: {msg_type: 'error', msg_body: response.payload.errorMessage}})
else
yield put({type: 'REGISTRATION_SUCCESSFUL', user: response})
});
}
这是firebase注册功能:
export default FireBaseTools = {
registerUser: (creds) => {
return firebaseAuth.createUserWithEmailAndPassword(creds.email, creds.password).then(user => {
return user;
}).catch(error => {
return {
errorCode: error.code,
errorMessage: error.message
}
});
}
}
编辑:最初我认为这是由 if/else 引起的,但回调似乎是真正的罪魁祸首