- 使用
await
结合if
判断
- 当使用
await
获取Future
的结果时,先对结果进行空值判断。
- 示例代码如下:
Future<String?> fetchData() async {
// 模拟异步操作,这里简单返回null
return null;
}
void main() async {
String? result = await fetchData();
if (result != null) {
print(result);
} else {
print('数据为空');
}
}
- 使用
then
方法结合null
aware运算符
- 使用
Future
的then
方法来处理结果,并使用null
aware运算符?.
。
- 示例代码如下:
Future<String?> fetchData() async {
// 模拟异步操作,这里简单返回null
return null;
}
void main() {
fetchData().then((result) => result?.length).then((length) {
if (length != null) {
print('数据长度: $length');
} else {
print('数据为空');
}
});
}
- 使用
FutureOr
类型注解和whenComplete
- 函数可以返回
FutureOr
类型,结合whenComplete
来处理可能的空值情况。
- 示例代码如下:
FutureOr<String?> fetchData() {
// 模拟异步操作,这里简单返回null
return null;
}
void main() async {
String? result;
await fetchData().whenComplete(() => result = null);
if (result != null) {
print(result);
} else {
print('数据为空');
}
}