append method
追加, 并发射
Implementation
T? append(T element, {bool fromHead = false}) {
if (_subject.isClosed) {
L.w('IO在close状态下请求发送数据');
return null;
}
// 如果没有设置原始数据, 那么就用空列表
latest ??= [];
if (fromHead) {
final List<T>? pending = latest?..insert(0, element);
// 从前面添加, 就把后面的挤出去
if (_forceCapacity != null && pending!.length > _forceCapacity!) {
pending.removeLast();
}
_subject.add(pending);
} else {
final List<T>? pending = latest?..add(element);
// 从后面添加, 就把前面的挤出去
if (_forceCapacity != null && pending!.length > _forceCapacity!) {
pending.removeAt(0);
}
_subject.add(pending);
}
return element;
}