Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:流和隔离_Flutter_Dart_Dart Isolates_Dart Stream - Fatal编程技术网

Flutter 颤振:流和隔离

Flutter 颤振:流和隔离,flutter,dart,dart-isolates,dart-stream,Flutter,Dart,Dart Isolates,Dart Stream,我试图在一个流中隔离MyComplexObject。 MyComplexObject在其类中有更多对象 MyComplexObject示例: class MyComplexObject { String documentID; Object1 object1; Object2 object2; Object3 object3; Object4 object4; Object5 object5; Object6 object6; Object7 object7; MyCompl

我试图在一个流中隔离
MyComplexObject
MyComplexObject
在其类中有更多对象

MyComplexObject
示例:

class MyComplexObject {
 String documentID;
 Object1 object1;
 Object2 object2;
 Object3 object3;
 Object4 object4;
 Object5 object5;
 Object6 object6;
 Object7 object7;

 MyComplexObject({
 this.documentID;
 this.object1,
 this.object2,
 this.object3,
 this.object4,
 this.object5,
 this.object6,
 this.object7,
 });

 factory MyComplexObject.fromFirestore(DocumentSnapshot documentSnapshot) {
  return MyComplexObject(
        documentID: documentSnapshot.documentID,
        object1: documentSnapshot.data['map1'],
        object2: documentSnapshot.data['map2'],
        object3: documentSnapshot.data['map3'],
        object4: documentSnapshot.data['map4'],
        object5: documentSnapshot.data['map5'],
        object6: documentSnapshot.data['map6'],
        object7: documentSnapshot.data['map7'],
  );
 }
}
我的流函数

Stream<MyComplexObject> streamMyComplexObject(String documentID) {
    DocumentReference documentReference =
        _db.collection(deviceStatesCollection).document(documentID);

    return documentReference
        .snapshots()
        .map((DocumentSnapshot documentSnapshot) {

      return MyComplexObject.fromFirestore(documentSnapshot);
    });
  }
streamMyComplexObject(字符串文档ID){
文档参考文档参考=
_db.收集(deviceStatesCollection).文档(documentID);
返回文档参考
.快照()
.map((文档快照文档快照){
从FireStore(documentSnapshot)返回MyComplexObject;
});
}

我将
streamMyComplexObject
StreamBuilder
一起使用,是否可以隔离
MyComplexObject
的解析/转换?

我不确定是否正确理解了您的问题,但也许你在寻找你的对象的扩展:这可能是与我的问题最接近的事情:我不确定我是否看到了这样做的目的。在Dart中使用隔离是一项繁琐且容易出错的任务,因此,只有在有可能阻塞主线程的长时间运行的任务时,才应该使用隔离。还需要注意的是,Dart中的隔离不与主线程共享内存,因此所有来回传递的数据都需要通过专用的通信通道来实现。设置一个流来处理和重定向数据当然是可能的,但如果不是绝对必要的话,也是多余的。