这个作用域给了我一个实例_Future但是我想得到翻译后的文本。
Future<dynamic> translate(String input) async {
final translator = GoogleTranslator();
var result;
var translation = await translator
.translate(input, to: 'tr')
.then((value) => {result = value});
return result;
}
这样行吗?我猜.translate
函数返回一个Translate
实例。您需要text
属性来获得String
下面的代码是错误的!
Future<String> translate(String input) async {
final translator = GoogleTranslator();
var result;
var translation = await translator
.translate(input, to: 'tr')
.then((value) => {result = value});
return result.text;
}
您还使用then
子句并将翻译结果转换为value
,因此您不需要使用await
并在这种情况下设置vartranslation
。或者您可以使用await
并删除then
。但是你不应该在同一个异步方法中同时使用await
和then
。
Future<String> translate(String input) async {
final translator = GoogleTranslator();
var translation = await translator
.translate(input, to: 'tr');
return translation.text;
}