【发布时间】:2017-07-25 10:55:32
【问题描述】:
我编写了以下函数 - 我正在尝试返回现有的 promise 函数,而无需将它们包装在自定义 promise 中:
doAuthWithPrompt(): Promise <any> {
this.getUser() // returns promise
.then (user => {
if (user == undefined) {
this.promptForPassword() // returns promise
.then (data => {
return this.doAuth(data.email, data.password); // returns promise
})
}
else {
return this.doAuth(user.email, user.password) // returns promise
};
})
.catch (e => {return Promise.reject(false);})
}
我在 IDE(Visual Studio 代码)中遇到的错误是:
[ts] 声明类型既不是“void”也不是“any”的函数必须 返回一个值。
定义doAuthWithPrompt 时我遗漏了什么?谢谢。
【问题讨论】:
-
你需要
return this.getUser().then.. -
@echonax 为什么不将其发布为答案?
-
@user1361529 哦,我没有看到链式承诺,你也应该这样做。
-
@echonax ,我无可救药。我跟进了你的 cmets - 抱歉:p
-
@echonax 这样做:)
标签: angular