首页 > 解决方案 > Contacts.find(fields,options) 仅针对离子中 for 循环内的最后一个元素执行?

问题描述

我有一个联系人数组,我迭代这个数组中的每个元素并创建一个联系人对象,然后在保存到设备联系人之前,我使用 contacts.find() 检查它是否已经存在于设备联系人中。但是由于这个完整的过程发生在 for 循环中。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);
        });
    }
}

标签: typescriptionic2

解决方案


推荐阅读