I want to know why my stream don't throw any error even if I don't use the asBroadcastStream() method ?

Generally if we want to listen the stream twice we need to put asBroadcastStream() method. but it works fine without the method.

class PlayScreen extends StatefulWidget {
      PlayScreen({Key? key}) : super(key: key);

      @override
      State<PlayScreen> createState() => _PlayScreenState();
    }

    class _PlayScreenState extends State<PlayScreen> {
      Stream<int> generateStream(int max) async* {
        for (int i = 0; i < max; i++) {
          await Future.delayed(const Duration(seconds: 1));
          yield i;
        }
      }

      Stream get numberStream => generateStream(1000);

      int currentNumber = -1;

      int anotherNumber = -1;

      void init() {
        numberStream.listen((event) {
          setState(() {
            currentNumber = event;
          });
        });

        numberStream.listen((event) {
          setState(() {
            anotherNumber = event;
          });
        });
      }

      @override
      void initState() {
        super.initState();
        init();
      }

      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            actions: [IconButton(onPressed: () {}, icon: const Icon(Icons.add))],
          ),
          body: Center(
            child: Column(
              children: [
                Text(currentNumber.toString()),
                Text(anotherNumber.toString()),
              ],
            ),
          ),
        );
      }
    }

Works fine without the Error