mirror of
https://github.com/esiur/esiur-dart.git
synced 2025-09-29 18:53:19 +00:00
1.4.0
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
import 'AsyncReply.dart';
|
||||
import '../Resource/Warehouse.dart';
|
||||
|
||||
|
||||
class AsyncBag<T> extends AsyncReply<List<T>> {
|
||||
List<AsyncReply<T>> _replies = new List<AsyncReply<T>>();
|
||||
List<AsyncReply<T>> _replies = <AsyncReply<T>>[];
|
||||
List<T> _results = <T>[];
|
||||
|
||||
int _count = 0;
|
||||
bool _sealedBag = false;
|
||||
|
||||
Type arrayType;
|
||||
|
||||
|
||||
seal() {
|
||||
//print("SEALED");
|
||||
|
||||
@@ -16,7 +18,7 @@ class AsyncBag<T> extends AsyncReply<List<T>> {
|
||||
|
||||
_sealedBag = true;
|
||||
|
||||
if (_results.length == 0) trigger(new List<T>());
|
||||
if (_results.length == 0) trigger(<T>[]);
|
||||
|
||||
for (var i = 0; i < _results.length; i++) {
|
||||
var k = _replies[i];
|
||||
@@ -25,8 +27,15 @@ class AsyncBag<T> extends AsyncReply<List<T>> {
|
||||
k.then<dynamic>((r) {
|
||||
_results[index] = r;
|
||||
_count++;
|
||||
//print("Seal ${_count}/${_results.length}");
|
||||
if (_count == _results.length) trigger(_results);
|
||||
if (_count == _results.length) {
|
||||
if (arrayType != null) {
|
||||
var ar = Warehouse.createArray(arrayType);
|
||||
_results.forEach(ar.add);
|
||||
trigger(ar);
|
||||
} else {
|
||||
trigger(_results);
|
||||
}
|
||||
}
|
||||
}).error((ex) {
|
||||
triggerError(ex);
|
||||
});
|
||||
|
@@ -3,7 +3,7 @@ library esiur;
|
||||
import 'AsyncReply.dart';
|
||||
|
||||
class AsyncQueue<T> extends AsyncReply<T> {
|
||||
List<AsyncReply<T>> _list = new List<AsyncReply<T>>();
|
||||
List<AsyncReply<T>> _list = <AsyncReply<T>>[];
|
||||
|
||||
// object queueLock = new object();
|
||||
|
||||
|
@@ -27,17 +27,16 @@ import 'AsyncException.dart';
|
||||
import 'ProgressType.dart';
|
||||
|
||||
class AsyncReply<T> implements Future<T> {
|
||||
List<Function(T)> _callbacks = new List<Function(T)>();
|
||||
List<Function(T)> _callbacks = <Function(T)>[];
|
||||
|
||||
T _result;
|
||||
|
||||
List<Function(AsyncException)> _errorCallbacks =
|
||||
new List<Function(AsyncException)>();
|
||||
List<Function(AsyncException)> _errorCallbacks = <Function(AsyncException)>[];
|
||||
|
||||
List<Function(ProgressType, int, int)> _progressCallbacks =
|
||||
new List<Function(ProgressType, int, int)>();
|
||||
<Function(ProgressType, int, int)>[];
|
||||
|
||||
List<Function(T)> _chunkCallbacks = new List<Function(T)>();
|
||||
List<Function(T)> _chunkCallbacks = <Function(T)>[];
|
||||
|
||||
bool _resultReady = false;
|
||||
AsyncException _exception;
|
||||
|
Reference in New Issue
Block a user