Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
Dart流错误与.listen().onError().onDone()_Dart - Fatal编程技术网

Dart流错误与.listen().onError().onDone()

Dart流错误与.listen().onError().onDone(),dart,Dart,我对一些类似这样的代码有一个问题。在这个表格中,我有一个错误 此处的表达式具有“void”类型,因此无法使用。 尝试检查您是否使用了正确的API;可能有一个函数或调用会返回出乎意料的void。还要检查可能也是void.dart的类型参数和变量(使用\u void\u结果) 如果删除.onDone(),错误就会消失。为什么?ELI5请:-) 我一直在看,但似乎仍然误解了什么。 我也读了 您的代码几乎正确,但只需要简单的更改即可正常工作 如果您交换了onError和onDone的顺序,您将看到相同的

我对一些类似这样的代码有一个问题。在这个表格中,我有一个错误

此处的表达式具有“void”类型,因此无法使用。
尝试检查您是否使用了正确的API;可能有一个函数或调用会返回出乎意料的void。还要检查可能也是void.dart的类型参数和变量(使用\u void\u结果)

如果删除.onDone(),错误就会消失。为什么?ELI5请:-) 我一直在看,但似乎仍然误解了什么。 我也读了


您的代码几乎正确,但只需要简单的更改即可正常工作

如果您交换了
onError
onDone
的顺序,您将看到相同的错误,因此问题与您的流使用无关。但是,您试图将对
onError
的调用链接在一起,然后再调用
onDone
,这两种方法都返回
void
,因此无法工作

您要查找的是符号(
),它允许您链接对
流订阅的调用,该订阅由
listen()
返回。您的代码应该是这样的:

serviceName.UploadThing(uploadRequest)。侦听((响应){
uploadMessageOutput=response.message;
if(response.uploadResult){
展示成功();
}否则{
淋浴器();
}
getUploadFileList(事件);
isSaveInProgress=false;
})…onError((错误){//Cascade
isSaveInProgress=false;
_handleFileUploadError(上传请求,错误);
})…onDone((){//Cascade
isSaveInProgress=false;
});

您的代码几乎正确,但只需要简单的更改即可正常工作

如果您交换了
onError
onDone
的顺序,您将看到相同的错误,因此问题与您的流使用无关。但是,您试图将对
onError
的调用链接在一起,然后再调用
onDone
,这两种方法都返回
void
,因此无法工作

您要查找的是符号(
),它允许您链接对
流订阅的调用,该订阅由
listen()
返回。您的代码应该是这样的:

serviceName.UploadThing(uploadRequest)。侦听((响应){
uploadMessageOutput=response.message;
if(response.uploadResult){
展示成功();
}否则{
淋浴器();
}
getUploadFileList(事件);
isSaveInProgress=false;
})…onError((错误){//Cascade
isSaveInProgress=false;
_handleFileUploadError(上传请求,错误);
})…onDone((){//Cascade
isSaveInProgress=false;
});
serviceName.UploadThing(uploadRequest).listen((response) {
  uploadMessageOutput = response.message;
  if (response.uploadResult) {
    showSuccess();
  } else {
    showError();
  }
  getUploadFileList(event);

  isSaveInProgress = false;
}).onError((error) {
  isSaveInProgress = false;
  _handleFileUploadError(uploadRequest, error);
}).onDone(() {
  isSaveInProgress = false;
});