Promise.all内循环

时间:2017-08-16 13:38:29

标签: javascript asynchronous ionic-framework ecmascript-6 promise

它是一个IONIC 2应用程序。

我正在使用Promise.all。当所有承诺都完成时,我想调用then函数。目前然后或赶上没有被调用。

我不知道为什么我没有得到console.log(me.contactlist1);

以下是我的代码。

constructor(private zone: NgZone, private cdr: ChangeDetectorRef, nav: NavController) {
    console.log("FriendsPage::constructor");
    var client = window.skypeWebApp;
    let me = this;
    client.personsAndGroupsManager.all.groups.subscribe();
    client.personsAndGroupsManager.all.groups.get().then(function (groups) {
    let tagGroup = [];
    for(let group in groups)
    {
        if (groups[group].name())
            tagGroup.push(me.createGroupView(groups[group]));
      }
      console.log(tagGroup);

      Promise.all(tagGroup).then((results) => {
            console.log(me.contactlist1);
        }).catch((e) => {
            console.log(e);
        });

        console.log("hey");
    })
    .then(function() {
        console.log("friendstest3");
    });
}

createGroupView(contactsObj)
{
    let me = this;
    return new Promise((resolve) => {
        let contacts = contactsObj.persons;
        contacts.subscribe();
        console.log("hello");
        let all;
        contacts.get().then(function(contact){
            console.log("friendstest1");
            console.log(contact);
            let temp = {key: contactsObj.name(), value: contact}
            all = temp;
            me.contactlist1(all);
            resolve(all);
        });
    });

}

0 个答案:

没有答案