无论是否使用异步等待,我在返回结果时都会收到这个错误



**无论是否使用异步等待,我在第26行返回结果时都会收到这个错误。我正在构建一个天气应用程序,但这只是一个测试一些东西和概念的临时文件,因为我正在学习一门名为Flutter初级课程的课程。**

错误: 必须先分配不可为null的局部变量"resolt",然后才能使用它

代码:

import 'dart:io';

void main() {
performTasks();
}

void performTasks() async {
task1();
String newtask2Result = await task2();
task3(newtask2Result);
}

void task1() {
String result = 'task 1 data';
print('Task 1 complete');
}

Future task2() async {
Duration threeSeconds = Duration(seconds: 3);
String resolt;

await Future.delayed(threeSeconds, () {
resolt = 'task 2 data';
print('Task 2 complete');
});
return resolt;
}

void task3(String task2Data) {
String result = 'task 3 data';
print('Task 3 complete with $task2Data');
}

图片:在此处输入图像描述

task2()函数中,您声明了一个变量,但没有初始化它。

您可以使用默认值对其进行初始化,也可以将其设置为late类型。

示例1-默认值

Future task2() async {
Duration threeSeconds = Duration(seconds: 3);
String resolt = "";
await Future.delayed(threeSeconds, () {
resolt = 'task 2 data';
print('Task 2 complete');
});
return resolt;
}

示例2-声明为late

Future task2() async {
Duration threeSeconds = Duration(seconds: 3);
late String resolt;
await Future.delayed(threeSeconds, () {
resolt = 'task 2 data';
print('Task 2 complete');
});
return resolt;
}

将您的返回类型从Future更改为Future。

最新更新