Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.

Commit ef39a44

Browse files
JiaLiPassionmhevery
authored andcommitted
feat(task): add task lifecycle doc and testcases to explain task state transition. (#651)
* doc(task): add task document for lifecycle explaination * test(task): add testcases for task lifecycle
1 parent 76fa891 commit ef39a44

19 files changed

+1364
-42
lines changed

doc/error.png

25.5 KB
Loading

doc/error.puml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@startuml
2+
scheduling --> unknown: zoneSpec.onScheduleTask\nor task.scheduleFn\nthrow error
3+
running --> scheduled: error in \ntask.callback\nand task is\nperiodical\ntask
4+
running --> notScheduled: error in\ntask.callback\nand\ntask is not\nperiodical
5+
running: zoneSpec.onHandleError
6+
running --> throw: error in\n task.callback\n and \nzoneSpec.onHandleError\n return true
7+
canceling --> unknown: zoneSpec.onCancelTask\n or task.cancelFn\n throw error
8+
unknown --> throw
9+
@enduml

doc/eventtask.png

32.3 KB
Loading

doc/eventtask.puml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
@startuml
2+
[*] --> notScheduled: initialize
3+
notScheduled --> scheduling: addEventListener
4+
5+
scheduling: zoneSpec.onScheduleTask
6+
scheduling: zoneSpec.onHasTask
7+
8+
scheduling --> scheduled
9+
scheduled --> running: event\n triggered
10+
running: zoneSpec:onInvokeTask
11+
12+
scheduled --> canceling: removeEventListener
13+
canceling: zoneSpec.onCancelTask
14+
canceling --> notScheduled
15+
canceling: zoneSpec.onHasTask
16+
17+
running --> scheduled: callback\n finished
18+
running: zoneSpec.onHasTask
19+
running --> canceling: removeEventListener
20+
21+
@enduml

doc/microtask.png

21.2 KB
Loading

doc/microtask.puml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
@startuml
2+
[*] --> notScheduled: initialize
3+
notScheduled --> scheduling: promise.then/\nprocess.nextTick\nand so on
4+
5+
scheduling: zoneSpec.onScheduleTask
6+
scheduling: zoneSpec.onHasTask
7+
8+
scheduling --> scheduled
9+
scheduled --> running: callback
10+
running: zoneSpec:onInvokeTask
11+
12+
running --> notScheduled
13+
running: zoneSpec.onHasTask
14+
@enduml

doc/non-periodical-macrotask.png

30.5 KB
Loading

doc/non-periodical-macrotask.puml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
@startuml
2+
[*] --> notScheduled: initialize
3+
notScheduled --> scheduling: setTimeout/\nXMLHttpRequest.send\nand so on
4+
5+
scheduling: zoneSpec.onScheduleTask
6+
scheduling: zoneSpec.onHasTask
7+
8+
scheduling --> scheduled
9+
scheduled --> running: timeout callback\nreadystatechange\ncallback
10+
running: zoneSpec:onInvokeTask
11+
12+
scheduled --> canceling: clearTimeout\n/abort request
13+
canceling: zoneSpec.onCancelTask
14+
canceling --> notScheduled
15+
canceling: zoneSpec.onHasTask
16+
running --> notScheduled
17+
running: zoneSpec.onHasTask
18+
@enduml

doc/override-task.png

30.5 KB
Loading

doc/override-task.puml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
@startuml
2+
[*] --> notScheduled: initialize
3+
notScheduled --> scheduling: scheduleTask
4+
5+
scheduling: zoneSpec.onScheduleTask
6+
scheduling: zoneSpec.onHasTask
7+
8+
scheduling --> scheduled: override with\n anotherZone
9+
scheduled --> running: timeout callback\nreadystatechange\ncallback
10+
running: anotherZoneSpec:onInvokeTask
11+
12+
scheduled --> canceling: clearTimeout\n/abort request
13+
canceling: anotherZoneSpec.onCancelTask
14+
canceling --> notScheduled
15+
canceling: zneSpec.onHasTask
16+
running --> notScheduled
17+
running: zoneSpec.onHasTask
18+
@enduml

0 commit comments

Comments
 (0)