@sheyla wrote:
I have a ionic 3 application where i use cordova-plugin-contacts.
What I have i a simple function that from a phone number return a name based on contacts:
public getContactNameNumber = function(number) { return this.contacts.find(['phoneNumbers'], {filter: number, multiple: false}) .then(data => { console.log('resolved'); if (data && data[0].displayName) { return {'name': data[0].displayName, 'number': number}; } return {'name': number, 'number': number}; }) .catch(e => console.log('error', JSON.stringify(e))); }
Now i call my function multiple times (for every phone numbers i have):
const uniqueContacts = Promise.all( rows .map(item=>item.to) .filter( (item,index,all)=>all.indexOf(item)===index ) .map(this.getContactNameNumber.bind(this)) ); uniqueContacts.then( uniqueContacts => console.log( "unique contacts length:", uniqueContacts.length, "first item:", JSON.stringify(uniqueContacts[0],undefined,2) ) || uniqueContacts.reduce( (messages,contact)=> replaceToWithName(contact) ,this.messages ) ) .catch(e => console.log('my error', JSON.stringify(e)));
If I have only one phone number everything works fine but when i have two or more phone numbers i get that something doens’t work. First of all from my getContactNameNumber function I get only one console.log() while i expect to have it n times based on the numbers i have. So my uniqueContacts.then() never run.
Where i’m wrong?
Posts: 1
Participants: 1