Skip to content

Instantly share code, notes, and snippets.

@rullyalves
Created May 20, 2020 17:02
Show Gist options
  • Select an option

  • Save rullyalves/470652a329d607f49e4c232c54ad54b4 to your computer and use it in GitHub Desktop.

Select an option

Save rullyalves/470652a329d607f49e4c232c54ad54b4 to your computer and use it in GitHub Desktop.
Testando observáveis
void main(){
final obs = Observable<String>();
final items = List.generate(500,(i) => Observer<String>(obs));
obs.setState("ib");
}
int fibonacci(int n) {
if (n == 0 || n == 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
class Observable<T>{
List<Observer<T>> observers = <Observer<T>>[];
T data;
void setState(T data){
this.data = data;
notifyObservers();
}
void notifyObservers(){
final start = DateTime.now();
print(start);
final localObservers = List.from(observers);
for (var observer in localObservers) {
if(observers.contains(observer)){
observer.update(data);
}
}
final end = DateTime.now();
print(end);
print(start.difference(end).inMicroseconds);
}
void addObserver(Observer<T> observer){
observers.add(observer);
}
}
class Observer<T>{
Observer(Observable observable){
observable.addObserver(this);
}
void update(T data){
fibonacci(20);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment