如何拒绝 NativeScript 上的承诺 - Angular 2
How to reject a promise on NativeScript - Angular 2
我有一个代码可以在 angular 2 中运行,但是当我尝试在 nativescript 项目中使用它时失败了。
我试图拒绝这样的承诺:
login(credentials:Credentials):Promise<User> {
if (!valid) {
return Promise.reject<User>("Invalid password");
}else {
return Promise.resolve(new User("some user"));
}
}
我得到这个错误:
Error:(32, 22) TS2346: Supplied parameters do not match any signature of call target.
您在拒绝时错过了 return 承诺。
错误直接说你不是 returning Promise<User>
从功能。由于方法 return 类型是 Promise<User>
,它总是 return 该对象。
PS: 在OP中编辑后发现该方法可以return两种类型的数据,成功则为User
对象, 拒绝其 string
。因此,对于这种情况,我希望您将方法 return 类型更改为 User | string
代码
login(credentials:Credentials):Promise<User | string> {
if (!valid) {
//returned promise here which was missing and failing compilation
return Promise.reject("Invalid password");
}else {
return Promise.resolve(new User("some user"));
}
}
我有一个代码可以在 angular 2 中运行,但是当我尝试在 nativescript 项目中使用它时失败了。 我试图拒绝这样的承诺:
login(credentials:Credentials):Promise<User> {
if (!valid) {
return Promise.reject<User>("Invalid password");
}else {
return Promise.resolve(new User("some user"));
}
}
我得到这个错误:
Error:(32, 22) TS2346: Supplied parameters do not match any signature of call target.
您在拒绝时错过了 return 承诺。
错误直接说你不是 returning Promise<User>
从功能。由于方法 return 类型是 Promise<User>
,它总是 return 该对象。
PS: 在OP中编辑后发现该方法可以return两种类型的数据,成功则为User
对象, 拒绝其 string
。因此,对于这种情况,我希望您将方法 return 类型更改为 User | string
代码
login(credentials:Credentials):Promise<User | string> {
if (!valid) {
//returned promise here which was missing and failing compilation
return Promise.reject("Invalid password");
}else {
return Promise.resolve(new User("some user"));
}
}