0

这个范围给了我_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;
}
4

1 回答 1

0

这行得通吗?我猜该.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和设置 var translation。或者您可以使用await和删除then. 但是你不应该同时使用awaitthen用于同一个异步方法。

所以应该使用下面的代码:

Future<String> translate(String input) async {
  final translator = GoogleTranslator();
  var translation = await translator
      .translate(input, to: 'tr');
  return translation.text;
}
于 2021-09-15T19:19:48.553 回答