import 'dart:async';
void main() {
  var dog = Dog();
  showTheDogACat(dog);
  print('outside');
  dog.bark();
}
class Cat{
  void runAway(msg){
    print("$msg I'm running away!");
  }
}
class Dog{  
  var _barkController = StreamController();
  Stream get onBark => _barkController.stream.asBroadcastStream();
  void bark(){
    _barkController.add("woof");
  }
}
showTheDogACat(dog){
  var cat = Cat();
  dog.onBark.listen((event)=>cat.runAway(event));
  dog.onBark.listen((event)=>print(event));       //why Exception: Stream already has subscriber?
  print('inside');
  dog.bark();
}
2 番目の呼び出しで例外が生成されるのはなぜdog.onBark.listenですか: ストリームには既にサブスクライバーがありますか? ブロードキャストストリームには多くのサブスクライバーがいると思いましたか?