You are mixing it up two way's to use Futures:
- You can use
await
keyword to await for the conclusion.
- You can use the
then
method to have a callback when the Future ends.
You need to choose one and stick with it. Using the await
is always preferable because it makes the code more readable and avoids some callback hells.
In your case:
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()
}
Which should return the DisplayName you wanted.
Remember to also use the await
keyword from the outside, wherever you call this function.
You can read more about Future and Asynchronous code here.