redux-promise, FSA兼容的promise中间件,用于 Redux

分享于 

3分钟阅读

GitHub

  繁體 雙語
FSA-compliant promise middleware for Redux.
  • 源代码名称:redux-promise
  • 源代码网址:http://www.github.com/redux-utilities/redux-promise
  • redux-promise源代码文档
  • redux-promise源代码下载
  • Git URL:
    git://www.github.com/redux-utilities/redux-promise.git
    Git Clone代码到本地:
    git clone http://www.github.com/redux-utilities/redux-promise
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/redux-utilities/redux-promise
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    redux承诺

    build statusnpm version

    FSA -compliant promise 中间件。

    npm install --save redux-promise

    用法

    importpromiseMiddlewarefrom'redux-promise';

    默认导出是一个中间件函数。 如果它收到承诺,它将分派承诺的承诺值。 如果承诺拒绝,它将不会分派任何东西。

    如果接收到 payload 是承诺的流量标准动作,它将

    • 使用承诺的承诺值发送操作副本,并将 status 设置为 success
    • 使用承诺的承诺值发送操作副本,并将 status 设置为 error

    中间件返回给调用者的承诺,以便在继续操作之前等待操作完成。 这对于服务器端渲染尤其有用。 如果发现没有返回保证,请确保链中的所有中间件还返回它的next() 调用。

    与redux操作结合使用

    因为它支持FSA操作,所以你可以使用 redux-promise和 redux操作

    示例:异步操作创建者

    这与Flummox中的工作方式类似:

    createAction('FETCH_THING', asyncid=> {
     constresult=await somePromise;
     returnresult.someValue;
    });

    Flummox不同,它不会在操作开始时执行调度,仅在结束时执行。 我们仍然在探讨如何处理乐观更新的最佳方法。 如果你有建议,请告诉我。

    示例:与模块的集成

    假设你有一个将请求发送到服务器的API模块。 这是流量应用中常见的Pattern。 假设模块支持承诺,那么创建围绕你的API的操作创建者是很容易的:

    import { WebAPI } from'../utils/WebAPI';exportconstgetThing=createAction('GET_THING', WebAPI.getThing);exportconstcreateThing=createAction('POST_THING', WebAPI.createThing);exportconstupdateThing=createAction('UPDATE_THING', WebAPI.updateThing);exportconstdeleteThing=createAction('DELETE_THING', WebAPI.deleteThing);

    ( 你可能会注意到这是如何简化的,甚至进一步使用lodash的mapValues()。)


    COM  RED  中间件  compliant  
    相关文章