t-tasks 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/t-tasks.d.ts +2 -2
- package/dist/t-tasks.esm.js +29 -20
- package/dist/t-tasks.esm.js.map +1 -1
- package/dist/t-tasks.js +29 -20
- package/dist/t-tasks.js.map +1 -1
- package/package.json +1 -1
- package/src/task.ts +34 -29
package/dist/t-tasks.d.ts
CHANGED
|
@@ -1875,7 +1875,7 @@ export declare namespace Task {
|
|
|
1875
1875
|
* @param tasks iterable of tasks to execute
|
|
1876
1876
|
* @returns task resolving to the result of first successfull task
|
|
1877
1877
|
*/
|
|
1878
|
-
function any<T>(tasks: Iterable<Task<T>>): Task<
|
|
1878
|
+
function any<T>(tasks: Iterable<Task<T>>): Task<T>;
|
|
1879
1879
|
/**
|
|
1880
1880
|
* Limit task execution based on another task
|
|
1881
1881
|
*
|
|
@@ -1887,7 +1887,7 @@ export declare namespace Task {
|
|
|
1887
1887
|
* @param limitTask limiting task
|
|
1888
1888
|
* @returns task limites according to limitTask
|
|
1889
1889
|
*/
|
|
1890
|
-
function limit<T>(task: Task<T>, limitTask: Task<void>): Task<
|
|
1890
|
+
function limit<T>(task: Task<T>, limitTask: Task<void>): Task<T>;
|
|
1891
1891
|
/**
|
|
1892
1892
|
* Repeat task untill successful
|
|
1893
1893
|
*
|
package/dist/t-tasks.esm.js
CHANGED
|
@@ -518,31 +518,40 @@ let Task;
|
|
|
518
518
|
}
|
|
519
519
|
_Task.all = all;
|
|
520
520
|
function any(tasks) {
|
|
521
|
-
const cell = settleCell();
|
|
522
521
|
const taskArray = Array.from(tasks);
|
|
523
|
-
if (taskArray.length
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
522
|
+
if (taskArray.length === 0) return Task.rejected([]);
|
|
523
|
+
return Task.fromCallback((resolve, reject, cancel) => {
|
|
524
|
+
const errors = taskArray.map(() => Maybe.nothing());
|
|
525
|
+
let remaining = taskArray.length;
|
|
526
|
+
const checkAllFailed = () => {
|
|
527
|
+
remaining--;
|
|
528
|
+
if (remaining === 0) reject(errors.map((e) => e.match({
|
|
529
|
+
just: (err) => err,
|
|
530
|
+
nothing: () => void 0
|
|
531
|
+
})));
|
|
532
|
+
};
|
|
533
|
+
taskArray.forEach((task, i) => {
|
|
534
|
+
task.matchTap({
|
|
535
|
+
resolved: (value) => {
|
|
536
|
+
resolve(value);
|
|
537
|
+
taskArray.forEach((t) => t.cancel());
|
|
538
|
+
},
|
|
539
|
+
rejected: (error) => {
|
|
540
|
+
errors[i] = Maybe.just(error);
|
|
541
|
+
checkAllFailed();
|
|
542
|
+
},
|
|
543
|
+
canceled: () => {
|
|
544
|
+
cancel();
|
|
545
|
+
taskArray.forEach((t) => t.cancel());
|
|
546
|
+
}
|
|
547
|
+
});
|
|
539
548
|
});
|
|
540
|
-
|
|
541
|
-
|
|
549
|
+
return taskArray;
|
|
550
|
+
}, (subtasks) => subtasks.forEach((t) => t.cancel()));
|
|
542
551
|
}
|
|
543
552
|
_Task.any = any;
|
|
544
553
|
function limit(task, limitTask) {
|
|
545
|
-
return Task.any([task, limitTask.chain(Task.canceled)])
|
|
554
|
+
return Task.any([task, limitTask.chain(Task.canceled)]);
|
|
546
555
|
}
|
|
547
556
|
_Task.limit = limit;
|
|
548
557
|
function repeat(taskFunction) {
|