Redux Promise 开源项目教程
redux-promise项目地址:https://gitcode.com/gh_mirrors/red/redux-promise
1. 项目的目录结构及介绍
Redux Promise 项目的目录结构相对简单,主要包含以下几个部分:
redux-promise/
├── LICENSE
├── README.md
├── dist/
│ ├── redux-promise.js
│ └── redux-promise.min.js
├── package.json
├── src/
│ └── index.js
└── test/
└── index.js
目录结构介绍
- LICENSE: 项目的许可证文件。
- README.md: 项目的说明文档,包含项目的基本信息和使用方法。
- dist/: 编译后的文件目录,包含
redux-promise.js
和redux-promise.min.js
。 - package.json: 项目的配置文件,包含项目的依赖、脚本等信息。
- src/: 源代码目录,包含项目的核心逻辑。
- test/: 测试文件目录,包含项目的测试代码。
2. 项目的启动文件介绍
Redux Promise 项目的启动文件位于 src/index.js
,该文件是项目的入口点,主要负责导出 Redux Promise 中间件。
import { isFSA } from 'flux-standard-action';
function isPromise(val) {
return val && typeof val.then === 'function';
}
export default function promiseMiddleware({ dispatch }) {
return next => action => {
if (!isFSA(action)) {
return isPromise(action) ? action.then(dispatch) : next(action);
}
return isPromise(action.payload)
? action.payload.then(
result => dispatch({ ...action, payload: result }),
error => {
dispatch({ ...action, payload: error, error: true });
return Promise.reject(error);
}
)
: next(action);
};
}
启动文件介绍
- isFSA: 检查一个动作是否符合 Flux Standard Action 规范。
- isPromise: 检查一个值是否为 Promise。
- promiseMiddleware: Redux Promise 中间件,处理带有 Promise 的 action。
3. 项目的配置文件介绍
Redux Promise 项目的配置文件是 package.json
,该文件包含了项目的基本信息、依赖、脚本等配置。
{
"name": "redux-promise",
"version": "0.5.3",
"description": "FSA-compliant promise middleware for Redux.",
"main": "dist/redux-promise.js",
"scripts": {
"test": "mocha --compilers js:babel-core/register",
"build": "babel src --out-dir dist",
"prepublish": "npm run build"
},
"repository": {
"type": "git",
"url": "https://github.com/acdlite/redux-promise.git"
},
"keywords": [
"redux",
"middleware",
"promise",
"fsa"
],
"author": "Andrew Clark <acdlite@me.com>",
"license": "MIT",
"bugs": {
"url": "https://github.com/acdlite/redux-promise/issues"
},
"homepage": "https://github.com/acdlite/redux-promise",
"devDependencies": {
"babel-core": "^6.3.26",
"babel-preset-es2015": "^6.3.13",
"chai": "^3.4.1",
"flux-standard-action": "^0.6.0",
"mocha": "^2.3.4"
}
}
配置文件介绍
- name: 项目名称。
- version: 项目版本。
- description: 项目描述。
- main: 项目的主入口文件。
- scripts: 项目的脚本命令,包括测试、构建等。
- repository: 项目的仓库地址。
- keywords: 项目的关键词。
- author: 项目的作者。
- license: 项目的许可证。
- bugs:
redux-promise项目地址:https://gitcode.com/gh_mirrors/red/redux-promise