如何将 url、参数、headers 传递给 redux-saga 中的 call()?

how to pass urls, params, headers to call() in redux-saga?

关于 call() 工作的理论在许多网站上都有很好的解释。但是,我没有找到任何网站可以通过正确的工作示例准确解释。

我写了下面的代码:

export function* loadUser() {
    try {
    const user = yield call(getUser);
    yield put({type: 'FETCH_USER_SUCCESS', payload: user});

  } catch(error) {
    yield put({type: 'FETCH_FAILED', error});
  }
}    

这里,我想用一些参数发送 'get' 请求,使用 call() 发送一些 header 请求。但我不知道如何实现它。请,如果你有时间,请用适当的工作示例(Codepen 或 jsFiddle)告诉它。

如果您阅读 Redux Saga 文档,您会看到 call 接受一个函数和一个展开的参数数组(逗号分隔):

call(fn, ...args)

你可以这样使用它:

const getUsers = (options) => {
  return axios(options)
}

function *fetchUsers() {
  const users = yield call(getUsers, { method: 'get', url: `https://api.github.com/users` }, {user: 'my_username'})
  console.log(users)
}

非常直接。

一个简单的调用可以用逗号分隔,yield call(fnName, param1, param2)

调用,函数名称和参数

call(funcname, ...args)