百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> redux-saga 回调中执行 put的例子
分享文章到:

redux-saga 回调中执行 put的例子

发布时间:01/15 来源: 浏览: 关键词:
下面是一段非常的简单的关于redux-saga 回调中执行 put的例子,这个例子可以让各位清楚关于redux-saga 回调中执行 put实现过程。

在 redux-saga 下,

 代码如下
postWithLoadingEffect(API.user, user).then(
    (response) => {
      console.log(response)
      // yield put(userActions.setCurrentUser(response.data))
    }
  ).catch(
    (error) => {
      console.error(error)
    }
  )

yield put 放在回调中是不会执行的,因为回调函数并不是 generator 函数。

但这种需求在实际代码里会经常出现。我们可以绕个圈子实现它:

 代码如下
  try {
    let response = yield call(postWithLoadingEffect, API.user, user)
    if (response) {
      console.log(response)
      window.localStorage.setItem('authToken', response.meta.jwt)
      yield put(userActions.setCurrentUser(response.data))
    }
  } catch (error) {
    console.error(error)
  }

call 是 redux-saga 提供的一个 effect,它会执行传递给它的函数。这样我们就取得了结果,可以正常使用 yield put。

但很多时候,我觉得在 saga 中直接使用 dispatch 会更方便,只是这样 redux-saga 的好处便又丢了 – 不如回去写 redux-thunk。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有19人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板