簡體   English   中英

如何在Angular 2中從另一個Promise函數調用一個Promise函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM