Javascript 如何拒绝NativeScript上的承诺-Angular 2
我有一个代码可以在angular 2中使用,但是当我尝试在nativescript项目中使用它时失败了。 我试图拒绝这样的承诺:Javascript 如何拒绝NativeScript上的承诺-Angular 2,javascript,angular,typescript,nativescript,angular2-nativescript,Javascript,Angular,Typescript,Nativescript,Angular2 Nativescript,我有一个代码可以在angular 2中使用,但是当我尝试在nativescript项目中使用它时失败了。 我试图拒绝这样的承诺: login(credentials:Credentials):Promise<User> { if (!valid) { return Promise.reject<User>("Invalid password"); }else { return Promise.resolve(new Us
login(credentials:Credentials):Promise<User> {
if (!valid) {
return Promise.reject<User>("Invalid password");
}else {
return Promise.resolve(new User("some user"));
}
}
当你拒绝承诺时,你错过了回报。
错误直接表示您并没有从函数返回承诺。由于方法返回类型是Promise,所以它总是返回该对象
PS:在OP中编辑后,发现该方法可以返回两种类型的数据,成功时为用户对象,拒绝其字符串。因此,对于这种情况,我希望您将方法返回类型更改为User | string
代码
当你拒绝承诺时,你错过了回报。
错误直接表示您并没有从函数返回承诺。由于方法返回类型是Promise,所以它总是返回该对象
PS:在OP中编辑后,发现该方法可以返回两种类型的数据,成功时为用户对象,拒绝其字符串。因此,对于这种情况,我希望您将方法返回类型更改为User | string
代码
谢谢你的回答,这不是问题所在!我忘了把它写在问题上,但我把它写在代码上了!我会编辑这个问题。谢谢!但承诺。拒绝无效密码;不返回承诺???@DiegoGonzález不,Promise.rejects语法不正确,因为在调用拒绝函数时,不能在两者之间说。括号内的任何内容都会拒绝返回的内容。在拒绝函数的情况下,它的字符串where,where作为从resolve functionIn typescript中正确返回的用户对象?我在其他项目中使用这种语法没有问题。我认为这是typescript编译器选项的问题。@DiegoGonzález不,不是。因为在这里,你试图应用拒绝方法,这显然是无效的。谢谢你的答案,这不是问题所在!我忘了把它写在问题上,但我把它写在代码上了!我会编辑这个问题。谢谢!但承诺。拒绝无效密码;不返回承诺???@DiegoGonzález不,Promise.rejects语法不正确,因为在调用拒绝函数时,不能在两者之间说。括号内的任何内容都会拒绝返回的内容。在拒绝函数的情况下,它的字符串where,where作为从resolve functionIn typescript中正确返回的用户对象?我在其他项目中使用这种语法没有问题。我认为这是typescript编译器选项的问题。@DiegoGonzález不,不是。因为在这里,您试图将其应用于拒绝方法,这显然是无效的
Error:(32, 22) TS2346: Supplied parameters do not match any signature of call target.
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"));
}
}