如何从Angular 2中的另一个Promise函数调用一个Promise函数?

Jas*_*son 1 javascript promise typescript angular

我有一个函数返回一个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' });
}
Run Code Online (Sandbox Code Playgroud)

我认为这不起作用,因为getUser"返回Promise.resolve"是在getAPIUser然后处理程序的上下文中.这在Angular 1中非常简单,您只需实例化$ q对象,然后在需要的任何地方解析该对象.我无法弄清楚Angular 2/Typescript/EM6中的等价物.

任何帮助,将不胜感激.

Nit*_*mer 7

您的getUser方法根本不会返回承诺.
当您then在promise上调用该方法时,它会返回一个Promise返回值,这就是您的方法需要返回的内容:

getUser(): Promise<User> {
    return this.getAPIUser().then(result => {
        ..Do some stuff with result..
        return result;
    });
}
Run Code Online (Sandbox Code Playgroud)