使用promises(离子和角度)回收数据

时间:2018-03-20 01:08:44

标签: angular api ionic-framework promise provider

嗨开发人员我正在尝试使用promises从我的API检索数据并在我的函数中使用这些值....这是我在服务中的功能

getetudiant() {
    return new Promise((resolve, reject) => {
        this.http.get('http://localhost/eportfolio/etudiantprofile.php')
            .map(res => res.json())
            .subscribe(data => {
                resolve(data);
            }, error => {
                reject(error);
            })
    })
}
}

这是我在我的页面上的调用。问题是在函数外面调用etudiantstage它给了我一个空数组

}
getAllStageItems(){
     this.etprofile.getetudiant().then((data: any) => {
        this.etudiantstage = data
        console.log(this.etudiantstage);
    });       

    console.log(this.etudiantstage);

    for(let item in this.etudiantstage){
        console.log(this.etudiantstage[item].cin);
        if(this.etudiantstage[item].cin == this.cin)
        this.validerAffiche = true;}
}

第一个console.log(this.etudiantstage)工作,但第二个不起作用Screen Shot 请有人帮我解决这个问题!

1 个答案:

答案 0 :(得分:0)

因为它是异步的。

因此,如果您想在从服务器获取数据后处理数据,那么逻辑应该在promise / observable订阅逻辑中。

首先,使服务功能返回可观察的

driver.find_element_by_class_name("button_primary").click() #for clicking the view cart
driver.find_element_by_link_text("Proceed to Checkout").click()

getetudiant() {
    return this.http.get('http://localhost/eportfolio/etudiantprofile.php')
            .map(res => res.json())   // should check Http or HttpClient since if you use HttpClient, you do not need to use res=>res.json().
}