当前位置: 首页 > 知识库问答 >
问题:

contact_services GetContactsFoorphone returing Future而不是String-Flatter

湛鸿
2023-03-14

我正在使用功能getContactsForPhone

   getName()async{
    number = '123-456-7890'
    return await ContactsService.getContactsForPhone(number).then((value) =>  value.elementAt(0).displayName.toString());
  }

但我得到了未来

共有1个答案

夹谷星河
2023-03-14

你把使用期货的两种方法混为一谈:

  • 您可以使用await关键字等待结论

您需要选择一个并坚持使用它。使用wait总是更可取的,因为它使代码更具可读性并避免了一些回调地狱。

就你而言:

Future<String> getName() async {
    number = '123-456-7890'
    Iterable<Contact> myIterable = await ContactsService.getContactsForPhone(number);
    List<Contact> myList = myIterable.toList();
    return myList[0].displayName.toString()
  }

它应该返回您想要的DisplayName。

记住,无论您在哪里调用此函数,都要从外部使用wait关键字。

您可以在这里阅读更多关于未来和异步代码的信息。

 类似资料:
  • 代码段用于获取从文本文件中提取的一行文本,将其分离为单独的标记,并将每个标记存储在数组的索引中。起初我以为问题出在文本文件上,但是直接将字符串放入编辑器并不能解决这个问题。 使用字符串,如: 带分隔符的StringTokenizer对象返回前四个标记作为正确的字符串,但其余四个标记为null。 有趣的是,另一个字符串: “Gnollnonegeralany222taunttaunt” 鸡肉没有野兽

  • 我正在使用插件从文件生成源代码。问题是生成的是而不是。我添加了文件,该文件如下所示: 这应防止生成。但它不起作用我仍然生成了而不是。 我的插件如下所示: 版本为。有人知道问题出在哪里吗? XSD非常庞大。这是生成的元素 生成的源是:

  • 问题内容: 这一直使我感到困惑。看起来这样会更好: 比这个: 是否有特定原因? 问题答案: 这是因为任何可迭代对象都可以连接(例如,列表,元组,字典,集合),但是其内容和“连接器” 必须是 字符串。 例如: 使用字符串以外的其他东西会引发以下错误:

  • rank ▲ ✰ vote url 37 511 93 416 url 为什么是string.join(list)而不是list.join(string)? 我一直被这个问题困扰.如果这样写更好: my_list = ["Hello", "world"] print my_list.join("-") # Produce: "Hello-world" 而不是: my_list = ["Hello

  • 我是机器学习的初学者,目前正在尝试将VGG网络应用于我的神经网络 这是发生的错误 发现714幅图像,分属10类。发现100个图像,属于 到10个班。------------------------------------------------------------------------------------------------------------------------------

  • 问题内容: 以下是两种附加方法: 我的问题是-什么时候使用更有效?假设有10个字符串,我需要创建其中一个。 问题答案: 因为StringBuilder可以“附加”一个字符串,而不是每次创建一个新对象时都串联两个字符串。即使对字符串使用+ =运算符,也会创建一个新对象。仅当您尝试连接大量字符串时,此优点才变得重要。If也被认为更具可读性。