为什么“等待”无法在Dart的yield表达式内传递结果?

我有兴趣了解为什么第一个表达式无法更新我的状态,但是第二个表达式可以工作。这段代码使用built_value和bloc。

yield this.state.rebuild(
     (b) async => b..things = await thingRepo.things(),
);

List<Thing> _things = await thingRepo.things();
yield this.state.rebuild(
     (b) async => b..things = _things,
);