我有一个像这样的 Typescript 方法,我希望它返回一个 Promise,但只有在执行 this.user.currentCourseId = Student.currentCourseId;
行之后。
可能吗?
public getUserData()
{
...
this.authState.auth.getToken().then(token =>
{
this.user.token = token;
this.userService.update(this.user).then(student =>
{
this.user.currentCourseId = student.currentCourseId;
});
});
}
最佳答案
正如 jfriend 所指出的,您迫不及待地要在 Promise 完成后才返回它。那就本末倒置了。您立即返回 promise ,并将其链接起来等待其完成。
我只是想指出,你应该利用 promise 链来避免滑向“末日之塔”的习惯:
public getUserData()
{
...
// return promise from function
return this.authState.auth.getToken().then(token =>
{
this.user.token = token;
// return promise here to chain to original promise
return this.userService.update(this.user)
}).then(student => {
this.user.currentCourseId = student.currentCourseId;
});;
}
getUserDate().then(() => {
// currentCourseId has been set now
});
关于typescript - 如何在此方法中返回 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41309606/