0
Я ищу, чтобы проверить, если обещание будет решено в ионном 2. Вот мой код:ионных 2 проверить, если обещание будет решен
ionViewDidLoad() {
this.loader.present();
this.getCourses();//after resolve to do something
}
public getCourses(){
this.coursesData.LoadData()
.subscribe(courseList=> {
courseList.forEach(course=>{
var newCourse={
id_course:course.id_course ,
key_course:course.key_course,
course_name:course.course_name ,
course_type:course.course_type ,
start:course.start ,
end:course.end ,
point_course:course.point_course ,
day:course.Day,
class:course.class,
lecture_name:course.lecture_name
}
this.coursesA.push(newCourse);
console.log(this.coursesA);
});
this.loader.dismiss();
// return this.coursesA;
},err=>{
console.log(err);
});
}
У меня есть this.getCourses()
функцию, после того, как она будет решена, я хочу сделать что-то еще с данными. Это мой провайдер. course-data.ts
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
/*
Generated class for the CoursesData provider.
See https://angular.io/docs/ts/latest/guide/dependency-injection.html
for more info on providers and Angular 2 DI.
*/
@Injectable()
export class CoursesData {
public data: any = null;
constructor(public http: Http) {
console.log('Hello CoursesData Provider');
}
LoadData(){
let link = "http://adirzoari.16mb.com/selectCourses.php";
return this.http.get(link)
.map(res => res.json());
}
}
Какая ошибка в вашей текущей функции 'this.getCourse()'? – Huiting
нет ошибки, но я хочу что-то сделать после этой функции. если я напишу новую строку после this.getCourse(), она сделает это до того, как закончит функцию getCourse. странно. –
Это связано с асинхронным характером JavaScript. Это позволит немедленно выполнить следующий оператор, не дожидаясь завершения 'this.getCourse()'. Подробнее: http://rowanmanning.com/posts/javascript-for-beginners-async/ – Huiting