[英]How to call one Promise function from another Promise function in Angular 2?
我有一个函数返回一个Promise,而该函数需要调用另一个返回Promise的函数:
getUser(): Promise<User> {
this.getAPIUser().then(result => {
..Do some stuff with result..
return Promise.resolve(result); // This doesn't work
});
}
getAPIUser(): Promise<User> {
return Promise.resolve({ firstName: 'Jason' });
}
我认为这不起作用,因为getUser“ return Promise.resolve”是在getAPIUser然后处理程序的上下文中。 在Angular 1中,这真的很容易,您只需实例化$ q对象,然后在需要的地方解析该对象。 我不知道什么是Angular 2 / Typescript / EM6中的等效项。
任何帮助,将不胜感激。
您的getUser
方法根本不返回承诺。
当您在promise上调用then
方法时,它将返回Promise
,这就是您的方法需要返回的内容:
getUser(): Promise<User> {
return this.getAPIUser().then(result => {
..Do some stuff with result..
return result;
});
}
为了完整起见,这同样适用:
getUser(): Promise<User> {
return new Promise((resolve) => {
this.getAPIUser().then(user => {
resolve(user);
})
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.