ionic 2 проверьте, выполнено ли обещание

Я смотрю, чтобы убедиться, что обещание разрешено в ionic 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());

}

}

0

Решение

Вы можете сделать обещание цепочки.

public getCourses(){
return new Promise(function(resolve, reject){
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();
resolve();

},err=>{
console.log(err);
reject(err);
});

});
}

ionViewDidLoad() {
this.loader.present();

var getCoursesPromise = this.getCourses();

var nextStepPromise = getCoursesPromise.then(function(result){
//do what you want to do after this.getCourses

}).catch(function(reject){
console.log(reject);
});

}

Вам нужно будет решить, когда вы захотите вызвать resolv для возврата объекта обещания.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]