gpt4 book ai didi

sql - 如何在 BLoC 模式中调用 sink.fromFuture?

转载 作者:IT王子 更新时间:2023-10-29 06:59:07 25 4
gpt4 key购买 nike

我陷入了这种情况:我正在尝试利用 BLoC patten 来处理数据库,但是当我不知道如何调用 .fromFuture 时在流的汇中

代码如下:

class ClientBloc implements BlocBase {
static final DatabaseHelper _db = DatabaseHelper();

final _listController = StreamController<List<Client>>();
Sink<List<Client>> get sinkList => _listController.sink;
Stream<List<Client>> get streamList => _listController.stream;

final StreamController<Client> _saveClientCtrl = StreamController<Client>();
Sink<Client> get sinkSave => _saveClientCtrl.sink;

ClientBloc(){
sinkList.add(_getList()); <----ERROR HERE
_saveClientCtrl.stream.listen(_saveClient);
}

static Future<List<Client>> _getList() async => await _db.getClientsList();

@override
void dispose() {
_listController.close();
_saveClientCtrl.close();
}

void _saveClient(data) {
_db.saveClient(data);
sinkList.add(_getList()); <----ERROR HERE
}

}

错误很明显

> The argument type 'Future<List<Client>>' can't be assigned to the parameter type 'List<Client>'.dart(argument_type_not_assignable)
_getList() → Future<List<Client>>

你能帮帮我吗?先感谢您弗朗切斯科

最佳答案

也许您可以尝试创建另一种方法?

像这样:

someMethod() async{
List<Client> yourList = await _db.getClientsList();
sinkList.add(yourList);
}

然后将该方法插入到您的构造函数中:

ClientBloc() {
someMethod();
...
}

关于sql - 如何在 BLoC 模式中调用 sink.fromFuture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53995400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com