Flutter 如何创建具有功能的包
Flutter how to create package with function
我正在尝试打包。我需要使用异步功能,但在构建包时无法使用它。
包裹代码:
class Sozluk {
wiki(ceviri) async {
var res = await http.Client()
.get(Uri.parse('https://sozluk.gov.tr/gts?ara=$ceviri'));
var body = res.body;
var decoded = jsonDecode(body);
var json = decoded[0];
var sozlukanlam = json["anlamlarListe"][0]["anlam"];
print(sozlukanlam);
return sozlukanlam;
}
}
测试代码:
void main() {
test('köpek', () {
final sozluk = Sozluk();
var cevap = sozluk.wiki('köpek');
print(cevap);
});
}
我得到的印刷品:
Instance of 'Future<dynamic>'
你的问题不清楚。
如果需要打印
sozlukanlam
测试函数中的 var 你需要等待你的 wiki 函数,因为它是异步的。
所以你可以这样做:
void main() {
test('köpek', () async {
final sozluk = Sozluk();
var cevap = await sozluk.wiki('köpek');
print(cevap);
});
}
或者,如果测试函数无法异步运行
void main() {
test('köpek', () {
final sozluk = Sozluk();
sozluk.wiki('köpek').then((sozlukanlam)=>print(cevap));
});
}
您的代码遗漏了很多部分。仅仅因为 Dart 允许您像草率的 Web 开发人员一样编写代码,并不意味着您应该这样做。 Dart 是强类型的,这是一个优点,请使用它。
问题:
ceviri
没有明确的类型。
wiki
没有明确的 return 类型。
wiki
不是 await
ed
- 你的匿名方法不是
async
。
有关 Future
、async
和 await
的更多信息:
尽可能完善您的代码:
class Sozluk {
Future<TYPE_X> wiki(TYPE_Y ceviri) async {
var res = await http.Client()
.get(Uri.parse('https://sozluk.gov.tr/gts?ara=$ceviri'));
var body = res.body;
var decoded = jsonDecode(body);
var json = decoded[0];
var sozlukanlam = json["anlamlarListe"][0]["anlam"];
print(sozlukanlam);
return sozlukanlam;
}
}
测试代码:
void main() {
test('köpek', () async {
final sozluk = Sozluk();
var cevap = await sozluk.wiki('köpek');
print(cevap);
});
}
请注意你需要填写TYPE_X和TYPE_Y,我不知道哪种数据类型最能代表你的数据。是数字吗?文字?你来决定。
我正在尝试打包。我需要使用异步功能,但在构建包时无法使用它。
包裹代码:
class Sozluk {
wiki(ceviri) async {
var res = await http.Client()
.get(Uri.parse('https://sozluk.gov.tr/gts?ara=$ceviri'));
var body = res.body;
var decoded = jsonDecode(body);
var json = decoded[0];
var sozlukanlam = json["anlamlarListe"][0]["anlam"];
print(sozlukanlam);
return sozlukanlam;
}
}
测试代码:
void main() {
test('köpek', () {
final sozluk = Sozluk();
var cevap = sozluk.wiki('köpek');
print(cevap);
});
}
我得到的印刷品:
Instance of 'Future<dynamic>'
你的问题不清楚。
如果需要打印
sozlukanlam
测试函数中的 var 你需要等待你的 wiki 函数,因为它是异步的。
所以你可以这样做:
void main() {
test('köpek', () async {
final sozluk = Sozluk();
var cevap = await sozluk.wiki('köpek');
print(cevap);
});
}
或者,如果测试函数无法异步运行
void main() {
test('köpek', () {
final sozluk = Sozluk();
sozluk.wiki('köpek').then((sozlukanlam)=>print(cevap));
});
}
您的代码遗漏了很多部分。仅仅因为 Dart 允许您像草率的 Web 开发人员一样编写代码,并不意味着您应该这样做。 Dart 是强类型的,这是一个优点,请使用它。
问题:
ceviri
没有明确的类型。wiki
没有明确的 return 类型。wiki
不是await
ed- 你的匿名方法不是
async
。
有关 Future
、async
和 await
的更多信息:
尽可能完善您的代码:
class Sozluk {
Future<TYPE_X> wiki(TYPE_Y ceviri) async {
var res = await http.Client()
.get(Uri.parse('https://sozluk.gov.tr/gts?ara=$ceviri'));
var body = res.body;
var decoded = jsonDecode(body);
var json = decoded[0];
var sozlukanlam = json["anlamlarListe"][0]["anlam"];
print(sozlukanlam);
return sozlukanlam;
}
}
测试代码:
void main() {
test('köpek', () async {
final sozluk = Sozluk();
var cevap = await sozluk.wiki('köpek');
print(cevap);
});
}
请注意你需要填写TYPE_X和TYPE_Y,我不知道哪种数据类型最能代表你的数据。是数字吗?文字?你来决定。