Flutter 颤振-在执行之前。然后,函数返回值,然后在读取之后。然后

Flutter 颤振-在执行之前。然后,函数返回值,然后在读取之后。然后,flutter,Flutter,我在下面的代码中遇到了两个问题,我认为这两个问题都是相关的 createFunction显示错误- “此函数的返回类型为‘FutureOr’,但不是以返回语句结尾。请尝试添加返回语句,或将返回类型更改为‘void’。-我需要返回true或false,因此我必须使用返回类型bool。” 当函数执行时,它会平稳运行,直到问题区域(代码中标记)。在这里,它返回null,然后返回执行。我需要运行。然后就在执行http.post之后。在代码末尾,它应该返回true/false 我们将非常感谢您的帮助

我在下面的代码中遇到了两个问题,我认为这两个问题都是相关的

  • createFunction显示错误- “此函数的返回类型为‘FutureOr’,但不是以返回语句结尾。请尝试添加返回语句,或将返回类型更改为‘void’。-我需要返回true或false,因此我必须使用返回类型bool。”
  • 当函数执行时,它会平稳运行,直到问题区域(代码中标记)。在这里,它返回null,然后返回执行。我需要运行。然后就在执行http.post之后。在代码末尾,它应该返回true/false
  • 我们将非常感谢您的帮助

      Future<bool> createFunction(image) async {
        var request = new http.MultipartRequest("POST", Uri.parse(_urlImage));
    
        request.files.add(
            await http.MultipartFile.fromPath('imagefile', image));
    
        var response = await request.send().catchError((error) {
          throw error;
        });
    
        response.stream.transform(utf8.decoder).listen((value) async {
          return await http
              .post(
            _url,
            headers: {
              'content-type': 'application/json',
              'authorization': 'auth'
            },
            body: json.encode({data}),
          )
    
          ///// PROBLEM AREA //////
    
              .then((value) async {
            final _extractedData = await jsonDecode(value.body);
            if (value.statusCode == 201) {
              return true;
            } else {
              return false;
            }
          }).catchError((error) {
            throw error;
          });
        });
      }
    
    Future createFunction(图像)异步{
    var request=newhttp.MultipartRequest(“POST”,Uri.parse(_urlImage));
    request.files.add(
    等待http.MultipartFile.fromPath('imagefile',image));
    var response=wait request.send().catchError((错误){
    投掷误差;
    });
    response.stream.transform(utf8.decoder).listen((值)异步{
    返回等待http
    .邮政(
    _网址,
    标题:{
    “内容类型”:“应用程序/json”,
    “授权”:“授权”
    },
    body:json.encode({data}),
    )
    /////问题领域//////
    .then((值)异步{
    最终_extractedData=wait jsonDecode(value.body);
    如果(value.statusCode==201){
    返回true;
    }否则{
    返回false;
    }
    }).catchError((错误){
    投掷误差;
    });
    });
    }
    
    好的,对于本页的下一位访问者,正确使用
    MultipartRequest
    类应该是:

    var uri=uri.parse('https://example.com/create');
    var request=http.MultipartRequest('POST',uri)
    ..字段['user']='nweiz@google.com'
    ..files.add(等待http.MultipartFile.fromPath(
    “package”、“build/package.tar.gz”,
    contentType:MediaType('application','x-tar'));
    var response=wait request.send();
    如果(response.statusCode==200)打印('Uploaded!');
    
    您的代码中有很多问题。您可以通过以下链接重试:谢谢@Akif。这真的很有帮助。你能把你的答案写在答题纸上吗?这样我就可以把它标对了。这适用于面临类似问题的人。