set method
Sets a new value for the signal and notifies subscribers when it changes.
Parameters:
value: The new value to set
Example:
final counter = Signal(0);
counter.value = 10;
counter.set(11);
Implementation
@override
T set(T value) {
super.set(value);
hasInitialized = true;
_version++;
if (writeDelay != Duration.zero) {
_timer?.cancel();
_timer = Timer(writeDelay, () async {
_startWrite();
try {
final result = write(value);
if (result is Future) {
await result;
}
} catch (_) {
// ignore write error
} finally {
_finishWrite();
_timer = null;
}
});
} else {
_startWrite();
final result = write(value);
if (result is Future) {
// ignore write error
result.whenComplete(_finishWrite).ignore();
} else {
_finishWrite();
}
}
return value;
}