Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit26d9964

Browse files
committed
resolve editor actions in sequence
1 parent3b49c0e commit26d9964

File tree

2 files changed

+26
-23
lines changed

2 files changed

+26
-23
lines changed

‎lib/reducers/editor-actions/index.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22
var_types_1=require('../../actions/_types');
33
varactions_1=require('./actions');
44
varstore_1=require('../../store');
5-
functionhandleEditorActions(actionArray){
6-
if(actionArray&&actionArray.length){
7-
actionArray.map(function(actionString){returnactions_1.editorActions(actionString);});
5+
functionhandleEditorActions(actions){
6+
varnext=actions.shift();
7+
if(next&&next.length){
8+
next.reduce(function(total,curr){
9+
returntotal.then(function(){returnactions_1.editorActions(curr);});
10+
},Promise.resolve());
811
}
912
}
1013
varcurrentTaskPosition=0;
@@ -14,15 +17,15 @@ function editorActionsReducer(editorActions, action) {
1417
switch(action.type){
1518
case_types_1.TESTS_LOAD:
1619
actions=store_1.default.getState().tasks.map(function(task){returntask.actions||[];});
17-
currentTaskPosition=0;
18-
handleEditorActions(actions.shift());
20+
handleEditorActions(actions);
1921
returnactions;
2022
case_types_1.TEST_RESULT:
2123
actions=action.payload.actions||[];
2224
varnextTaskPosition=action.payload.result.taskPosition;
23-
if(nextTaskPosition>currentTaskPosition){
24-
for(vari=0;i<nextTaskPosition-currentTaskPosition;i++){
25-
handleEditorActions(actions.shift());
25+
vartimes=nextTaskPosition-currentTaskPosition;
26+
if(times>0){
27+
for(vari=0;i<times;i++){
28+
handleEditorActions(actions);
2629
}
2730
currentTaskPosition=nextTaskPosition;
2831
}

‎src/reducers/editor-actions/index.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,37 @@ import {TESTS_LOAD, TEST_RESULT} from '../../actions/_types';
22
import{editorActions}from'./actions';
33
importstorefrom'../../store';
44

5-
// TODO: optimize editorActions to string[]
6-
7-
functionhandleEditorActions(actionArray:string[]):void{
8-
if(actionArray&&actionArray.length){
9-
// TODO: What is this???
10-
actionArray.map((actionString)=>editorActions(actionString));
5+
functionhandleEditorActions(actions:string[][]):void{
6+
constnext=actions.shift();
7+
if(next&&next.length){
8+
// resolve promises in order
9+
next.reduce((total:Promise<any>,curr:string)=>{
10+
returntotal.then(()=>editorActions(curr));
11+
},Promise.resolve());
1112
}
1213
}
1314

15+
// trigger actions only once, moving fowards
1416
letcurrentTaskPosition=0;
15-
/**
16-
* Test is running, return true, else false
17-
*/
17+
1818
exportdefaultfunctioneditorActionsReducer(
1919
editorActions=[],action:Action
2020
):string[][]{
2121
letactions:string[][]=null;
2222
switch(action.type){
2323
caseTESTS_LOAD:
2424
actions=store.getState().tasks.map(task=>task.actions||[]);
25-
currentTaskPosition=0;
26-
handleEditorActions(actions.shift());// run first action
25+
handleEditorActions(actions);// run first action
2726
returnactions;
2827

2928
caseTEST_RESULT:
3029
actions=action.payload.actions||[];
31-
constnextTaskPosition=action.payload.result.taskPosition;
32-
if(nextTaskPosition>currentTaskPosition){
30+
constnextTaskPosition:number=action.payload.result.taskPosition;
31+
consttimes:number=nextTaskPosition-currentTaskPosition;
32+
if(times>0){
3333
// run actions for each task position passed
34-
for(leti=0;i<nextTaskPosition-currentTaskPosition;i++){
35-
handleEditorActions(actions.shift());// run first action
34+
for(leti=0;i<times;i++){
35+
handleEditorActions(actions);// run first action
3636
}
3737
currentTaskPosition=nextTaskPosition;
3838
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp