【发布时间】:2021-05-15 21:43:36
【问题描述】:
我在下面的代码中遇到了 2 个问题,我认为两者都是相关的。
- createFunction 显示错误 - “此函数的返回类型为 'FutureOr',但不以 return 语句结尾。尝试添加 return 语句,或将返回类型更改为 'void'。” - 我需要返回true或false,所以我必须使用返回类型bool。
- 当函数执行时,它运行平稳,直到问题区域(在代码中标记)。在这里它返回 null 然后返回执行 .then 。我需要在 http.post 执行后立即运行 .then 。在代码的末尾,它应该返回 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;
});
});
}
【问题讨论】:
-
你的代码有很多问题。您可以通过以下链接重试:stackoverflow.com/a/49645074/10659482 和 stackoverflow.com/a/51162343/10659482
-
谢谢@Akif。这真的很有帮助。您能否在答案中写下您的答案,以便我将其标记为正确。这适用于面临类似问题的人。
标签: flutter