Flutter 颤振-在执行之前。然后,函数返回值,然后在读取之后。然后
我在下面的代码中遇到了两个问题,我认为这两个问题都是相关的Flutter 颤振-在执行之前。然后,函数返回值,然后在读取之后。然后,flutter,Flutter,我在下面的代码中遇到了两个问题,我认为这两个问题都是相关的 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。这真的很有帮助。你能把你的答案写在答题纸上吗?这样我就可以把它标对了。这适用于面临类似问题的人。