Skip to content

Commit

Permalink
feat: add jest && change README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
TNT-03 committed Apr 2, 2023
1 parent a0bd6d3 commit 9a23b4f
Show file tree
Hide file tree
Showing 15 changed files with 554 additions and 1,157 deletions.
12 changes: 1 addition & 11 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"presets": [
"@babel/preset-typescript",
[
"@babel/preset-env",
{

"modules": false
}
]
]
// "presets": ["@babel/preset-env", {"targets": {"node": "current"}}]
"presets": ["@babel/preset-env"]
}

4 changes: 1 addition & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
node_modules
.DS_Store
examples/
test/
dist
demo
taskOrder.test.js
demo
29 changes: 15 additions & 14 deletions README-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,25 +30,25 @@ const asyncTask = createTaskList({

setTimeout(async () => {
// 这里返回一个Promise.resolve,你可以使用async/await或者.then.
const data = await asyncTask;
console.log("data-1", data);
const { list, dataMap } = await asyncTask;
console.log("data-1", list[0]);
// 或者
asyncTask.then((data) => {
console.log("data-1", data);
asyncTask.then(({ list, dataMap }) => {
console.log("data-1", list[0]);
});
}, 100);

setTimeout(async () => {
const data = await asyncTask;
console.log("data-2", data);
const { list, dataMap } = await asyncTask;
console.log("data-2", dataMap.res2);
}, 200);

setTimeout(() => {
asyncTask.pushResolve("response1");
}, 300);

setTimeout(() => {
asyncTask.pushResolve("response2");
asyncTask.pushResolve("response2", "res2");
}, 400);
```

Expand All @@ -70,13 +70,14 @@ setTimeout(() => {

#### createTaskList 实例上的方法

| 名称 | 描述 | 返回值的数据结构 |
| ----------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| pushResolve | 增加数据的方法 | -- |
| clear | 清空所有的状态 | -- |
| paused | 暂停任务 | -- |
| running | 继续匹配任务 | -- |
| getStatus | 获取当前状态 | {<br>&nbsp;&nbsp; requestDone: false (是否完成所有的 request 绑定), <br>&nbsp;&nbsp; responseDone: false (是否完成所有的 pushResolve), <br>&nbsp;&nbsp; requestCount: 1 (已绑定的 request 数量),<br>&nbsp;&nbsp; responseCount: 1 (已完成的 pushResolve 数量)<br>} |
| 名称 | 描述 | 返回值的数据结构 |
| ----------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| then\* | promise 上原有的方法 | task.then(({list, dataMap})=>{}) |
| pushResolve | 增加数据的方法 | pushResolve(data, name), 非必填,Promise.resolve 的数据 |
| clear | 清空所有的状态 | -- |
| paused | 暂停任务 | -- |
| running | 继续匹配任务 | -- |
| getStatus | 获取当前状态 | {<br>&nbsp;&nbsp; requestDone: false (是否完成所有的 request 绑定), <br>&nbsp;&nbsp; responseDone: false (是否完成所有的 pushResolve), <br>&nbsp;&nbsp; requestCount: 1 (已绑定的 request 数量),<br>&nbsp;&nbsp; responseCount: 1 (已完成的 pushResolve 数量)<br>} |

### 使用 createTaskOrder

Expand Down
29 changes: 15 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,25 +30,25 @@ const asyncTask = createTaskList({

setTimeout(async () => {
// A Promise.resolve is returned here. You can use either async/await or .then.
const data = await asyncTask;
console.log("data-1", data);
const { list, dataMap } = await asyncTask;
console.log("data-1", list[0]);
// or
asyncTask.then((data) => {
console.log("data-1", data);
asyncTask.then(({ list, dataMap }) => {
console.log("data-1", list[0]);
});
}, 100);

setTimeout(async () => {
const data = await asyncTask;
console.log("data-2", data);
const { list, dataMap } = await asyncTask;
console.log("data-2", dataMap.res2);
}, 200);

setTimeout(() => {
asyncTask.pushResolve("response1");
}, 300);

setTimeout(() => {
asyncTask.pushResolve("response2");
asyncTask.pushResolve("response2", "res2");
}, 400);
```

Expand All @@ -70,13 +70,14 @@ You can use these functions in different methods. The result of the above code i

#### Methods on createTaskList Instances

| name | description | returned data structure |
| ----------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| pushResolve | Used to add data | -- |
| clear | Clear all statuses | -- |
| paused | pause task | -- |
| running | continue matching tasks | -- |
| getStatus | Get current status | {<br>&nbsp;&nbsp;// Whether to complete all request binding <br> &nbsp;&nbsp; requestDone: false, <br>&nbsp;&nbsp;// Whether to complete all pushResolve<br>&nbsp;&nbsp; responseDone: false, <br>&nbsp;&nbsp; //Number of requests bound <br>&nbsp;&nbsp; requestCount: 1 (Number of requests bound), <br>&nbsp;&nbsp; // Number of pushResolve complete<br>&nbsp;&nbsp;responseCount: 1 (Number of pushResolve completed)<br>} |
| name | description | returned data structure |
| ----------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| then\* | The original method of promise | task.then(({list, dataMap})=>{}) |
| pushResolve | Used to add data | pushResolve(data, name), Not required, data of Promise.resolve |
| clear | Clear all statuses | -- |
| paused | pause task | -- |
| running | continue matching tasks | -- |
| getStatus | Get current status | {<br>&nbsp;&nbsp;// Whether to complete all request binding <br> &nbsp;&nbsp; requestDone: false, <br>&nbsp;&nbsp;// Whether to complete all pushResolve<br>&nbsp;&nbsp; responseDone: false, <br>&nbsp;&nbsp; //Number of requests bound <br>&nbsp;&nbsp; requestCount: 1 (Number of requests bound), <br>&nbsp;&nbsp; // Number of pushResolve complete<br>&nbsp;&nbsp;responseCount: 1 (Number of pushResolve completed)<br>} |

### use createTaskOrder

Expand Down
9 changes: 7 additions & 2 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
module.exports = {
presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};
// presets: [["@babel/preset-env", { targets: { node: "current" } }]],
env: {
test: {
plugins: ["@babel/plugin-transform-runtime"],
},
},
};
Loading

0 comments on commit 9a23b4f

Please sign in to comment.