Javascript ';重演传奇';不异步工作
我正在尝试(学习)使用redux saga发出异步post请求,但我得到了一个同步行为 这是我正在使用的代码:Javascript ';重演传奇';不异步工作,javascript,reactjs,ecmascript-6,axios,redux-saga,Javascript,Reactjs,Ecmascript 6,Axios,Redux Saga,我正在尝试(学习)使用redux saga发出异步post请求,但我得到了一个同步行为 这是我正在使用的代码: import {AUTH_REQUEST} from '../constants/authentication'; import {authSuccess, authError} from '../actions/login'; import {takeEvery, call, put, fork, all} from 'redux-saga/effects'; import axio
import {AUTH_REQUEST} from '../constants/authentication';
import {authSuccess, authError} from '../actions/login';
import {takeEvery, call, put, fork, all} from 'redux-saga/effects';
import axios from 'axios';
const authenticate = (username, password) => {
axios
.post('http://localhost:8000/api/auth/login/', {username, password})
.then((response) => {
console.log('RESPONSE: ', response.data);
return response.data;
})
.catch((error) => {
throw error;
});
};
function* watchAuthRequest({username, password, resolve, reject}) {
try {
const result = yield call(authenticate, username, password);
console.log('RESULT', result);
yield put(authSuccess(result));
yield call(resolve);
} catch (error) {
yield put(authError(error));
yield call(reject, {serverError: 'Something bad happend !'});
}
}
const authSaga = function* authSaga() {
yield takeEvery(AUTH_REQUEST, watchAuthRequest);
};
export default function* rootSaga() {
yield all([
fork(authSaga),
]);
};
当我提交表单时(我使用的是redux表单),这就是为什么我会进入控制台日志:
RESULT: undefined
RESPONSE: Object {user: Object, token: "04a06266803c826ac3af3ffb65e0762ce909b07b2373c83b5a25f24611675e00"}
即使是authsucture
操作也被调度为空负载(result
)
我在这里做错什么了吗?您缺少一个
返回值:
const authenticate = (username, password) => {
return axios
.post('http://localhost:8000/api/auth/login/', {username, password})
.then((response) => {
console.log('RESPONSE: ', response.data);
return response.data;
})
.catch((error) => {
throw error;
});
};
你不会相信我花了这么多时间调试这个,是的,这就是我错过的。谢谢