Reactjs Axios不将数据返回到rootSaga

Reactjs Axios不将数据返回到rootSaga,reactjs,redux,axios,redux-saga,Reactjs,Redux,Axios,Redux Saga,所以我正在学习Redux传奇并使用Axios进行API调用。即使你不知道Redux传奇,但你知道Axios,你仍然可以提供帮助 下面是我的rootSaga代码,它获取我的操作并调用getBlogsSaga import {takeEvery, call, put, select} from 'redux-saga/effects' import {BLOGS} from '../store/actions/constants' import {getBlogsSaga} from './getB

所以我正在学习Redux传奇并使用Axios进行API调用。即使你不知道Redux传奇,但你知道Axios,你仍然可以提供帮助

下面是我的rootSaga代码,它获取我的操作并调用getBlogsSaga

import {takeEvery, call, put, select} from 'redux-saga/effects'
import {BLOGS} from '../store/actions/constants'
import {getBlogsSaga} from './getBlogsSaga'
import {setBlogs} from '../store/actions/blogActions'

function* displayBlogs() {
    const blogs = yield call(getBlogsSaga);
    console.log(yield call(getBlogsSaga))
    yield put(setBlogs(blogs))
}
//watcher saga
function* rootSaga() {
    yield takeEvery(BLOGS.LOAD, displayBlogs)
}

export default rootSaga;
这是axios调用,它在I console.log时返回数据

import axios from 'axios'
const API_URL = "http://localhost:3004/blogs/";

const getBlogsSaga = async () => {
    await axios
  .get(API_URL)
  .then(function (response) {
    const data = response.data;
    console.log(data)
    return data;
  })
  .catch(function (error) {
    console.log(error);
 });
}

export {getBlogsSaga}
最后,这里有一个console.log来说明我的意思。rootSaga请求数据,但从未收到数据,即使axios成功交付数据

getBlogsSaga.js:11 (3) [{…}, {…}, {…}]
rootSaga.js:8 undefined

saga的
调用
实际上可以很好地处理承诺,所以像这样编写axios代码应该可以很好地工作。不需要在这里等待,你可以在发电机里完成等待的繁重工作

import axios from 'axios'
const API_URL = "http://localhost:3004/blogs/";

const getBlogsSaga = () => {
  return axios
  .get(API_URL)
  .then(function (response) {
    const data = response.data;
    console.log(data)
    return data;
  })
  .catch(function (error) {
    console.log(error);
 });
}

export {getBlogsSaga}

我在这里做了一个简单的poc:)

我有一种直觉,你在getBlogsSaga axios函数中没有返回任何值,不如像return Wait axios那样返回它……哇,我已经坚持了一天了。非常感谢。所以我不得不从axios中删除async/Wait?因为这导致它无法及时将数据返回到传奇?基本上是:)很高兴它能帮上忙