Ionic 2/Angular 2的承诺,怎么样?

Pat*_*cow 2 javascript angular-promise ionic2 angular

我有两个功能:

this.geQuizStorage();
this.getQuizData();

geQuizStorage() {
    this.quizStorage.getAnswers().then(data => {
        return data;
    });
}

getQuizData() {
    this.quizData.getQuiz().then(data => {
        return data;
    });
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用2个函数的promises并等到两个函数都完成,例如:

http.when(this.geQuizStorage(), this.getQuizData()).when(data => {
    // data[0] first function response
    // data[1]
})
Run Code Online (Sandbox Code Playgroud)

任何想法如何在Ionic 2/Angular 2中做到这一点

Yar*_*mer 5

你可以用ES6 promise的all功能来做到这一点.不需要外部库.

Promise.all([this.geQuizStorage(), this.getQuizData()]).then(data => {
  //do stuff with data[0], data[1]
});
Run Code Online (Sandbox Code Playgroud)

你的函数应该返回promises以使其工作,所以我建议进行以下修改:

geQuizStorage() {
    return this.quizStorage.getAnswers().then(data => {
        return data;
    });
}

getQuizData() {
    return this.quizData.getQuiz().then(data => {
        return data;
    });
}
Run Code Online (Sandbox Code Playgroud)