Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何拒绝NativeScript上的承诺-Angular 2_Javascript_Angular_Typescript_Nativescript_Angular2 Nativescript - Fatal编程技术网

Javascript 如何拒绝NativeScript上的承诺-Angular 2

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

我有一个代码可以在angular 2中使用,但是当我尝试在nativescript项目中使用它时失败了。 我试图拒绝这样的承诺:

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"));
    }
}