代码之家  ›  专栏  ›  技术社区  ›  testinggnitset ser

redux saga dispatch是否可以立即返回api结果而不是返回操作

  •  0
  • testinggnitset ser  · 技术社区  · 6 年前

    在下面的一个承诺里发出了一个命令

    Promise.resolve(this.props.dispatch(getAPI(item))) // dispatch
    .then(function (result) { //result is the action passed in
        Linking.openURL(result.url);
    })
    

    一旦dispatch执行并调用一个api,该api返回一个类似url的值,我能立即访问then()中的api结果吗?这样我就可以立即使用结果并将其传递到链接.openUrl()

    1 回复  |  直到 6 年前
        1
  •  0
  •   Pritish Vaidya    6 年前

    考虑到您要调用的api是包装在 承诺

    传奇.js

    function * defaultSaga (action) {
      try {
        ... Other Code
        const result = yield call(YourApi, params) // Check the docs for redux-saga call
        // On api Success
        if(result && result.ok) {
          yield call(Linking.openUrl, result.url)
        }
      } catch(ex) {
        yield put(// Any error action here)
      }
    }