mirror of
https://github.com/esiur/esiur-dart.git
synced 2025-09-29 18:53:19 +00:00
1.4.5
This commit is contained in:
@@ -23,7 +23,14 @@ class AsyncBag<T> extends AsyncReply<List<T>> {
|
||||
if (_sealedBag) return;
|
||||
_sealedBag = true;
|
||||
|
||||
if (_replies.length == 0) trigger(<T>[]);
|
||||
if (_replies.length == 0) {
|
||||
if (arrayType != null) {
|
||||
var ar = Warehouse.createArray(arrayType as Type);
|
||||
trigger(ar as List<T>);
|
||||
} else {
|
||||
trigger(<T>[]);
|
||||
}
|
||||
}
|
||||
|
||||
var results = List<T?>.filled(_replies.length, null);
|
||||
|
||||
@@ -31,21 +38,23 @@ class AsyncBag<T> extends AsyncReply<List<T>> {
|
||||
var k = _replies[i];
|
||||
var index = i;
|
||||
|
||||
k..then((r) {
|
||||
results[index] = r;
|
||||
_count++;
|
||||
if (_count == _replies.length) {
|
||||
if (arrayType != null) {
|
||||
var ar = Warehouse.createArray(arrayType as Type);
|
||||
results.forEach(ar.add);
|
||||
trigger(ar as List<T>);
|
||||
} else {
|
||||
trigger(results.cast<T>());
|
||||
k
|
||||
..then((r) {
|
||||
results[index] = r;
|
||||
_count++;
|
||||
if (_count == _replies.length) {
|
||||
if (arrayType != null) {
|
||||
var ar = Warehouse.createArray(arrayType as Type);
|
||||
results.forEach(ar.add);
|
||||
trigger(ar as List<T>);
|
||||
} else {
|
||||
trigger(results.cast<T>());
|
||||
}
|
||||
}
|
||||
}
|
||||
})..error((ex) {
|
||||
triggerError(ex);
|
||||
});
|
||||
})
|
||||
..error((ex) {
|
||||
triggerError(ex);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,8 @@
|
||||
import 'dart:async';
|
||||
|
||||
class IEventHandler {
|
||||
final _propertyModifiedController = StreamController<String>();
|
||||
|
||||
Map<String, List<Function>> _events = {};
|
||||
|
||||
register(String event) {
|
||||
@@ -7,6 +11,12 @@ class IEventHandler {
|
||||
|
||||
IEventHandler() {}
|
||||
|
||||
Stream get properyModified => _propertyModifiedController.stream;
|
||||
|
||||
emitProperty(String name) {
|
||||
_propertyModifiedController.add(name);
|
||||
}
|
||||
|
||||
emitArgs(String event, List arguments) {
|
||||
//event = event.toLowerCase();
|
||||
|
||||
@@ -21,13 +31,13 @@ class IEventHandler {
|
||||
|
||||
on(String event, Function callback) {
|
||||
event = event.toLowerCase();
|
||||
if (_events.containsKey(event)) register(event);
|
||||
if (!_events.containsKey(event)) register(event);
|
||||
_events[event]?.add(callback);
|
||||
return this;
|
||||
}
|
||||
|
||||
off(event, callback) {
|
||||
event = event.toString();
|
||||
off(String event, callback) {
|
||||
event = event.toLowerCase();
|
||||
if (_events.containsKey(event)) {
|
||||
if (callback != null)
|
||||
_events[event]?.remove(callback);
|
||||
|
Reference in New Issue
Block a user