contacts.find (fields, options) выполняется только для последнего элемента внутри цикла for в ionic? - PullRequest
0 голосов
/ 09 мая 2018

У меня есть массив контактов, я перебираю каждый элемент в этом массиве и создаю объект контактов, а затем перед сохранением в контакты устройства я использую contacts.find (), чтобы проверить, существует ли он уже в контактах устройства. но так как этот полный процесс происходит внутри цикла. contacts.find () выполняется только для последнего элемента.

private(contacts:Contact)
{
//constructor
}

somefunc()
{
    for (var i = 0; i < data.length; i++)
    {
        let contact: Contact = this.contacts.create();
        contact.name = new ContactName(null, lastName, firstName, middleName);
        contact.photos = [new ContactField("base64", "dfdgsf/nbbbb/hv....", true)];
        contact.phoneNumbers = [new ContactField("454******", "mobile", true)];

        this.contacts.find(
         ["displayName", "phoneNumbers", "emails"],
         { multiple: true, filter: "Sam", hasPhoneNumber: false })
        .then((contactsArray) =>
        {
            //do something
            /*based on result we will decide whether to save as a new contact or modify the existing contact*/
        },(error) =>
        {
            console.log(error);
        });
    }
}
...