javascript - 如何拒绝 NativeScript 上的 promise - Angular 2

标签 javascript angular typescript nativescript angular2-nativescript

我有一个适用于 Angular 2 的代码,但是当我尝试在 nativescript 项目中使用它时失败了。 我试图拒绝这样的 promise :

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.

最佳答案

您在拒绝时错过了返回 promise 。 错误直接说你不返回Promise<User>从功能。由于方法返回类型是 Promise<User> ,它总是返回那个对象。

PS:在OP中编辑后发现该方法可以返回两种类型的数据,成功则为User对象,拒绝其 string .因此,对于这种情况,我希望您将方法返回类型更改为 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"));
    }
}

关于javascript - 如何拒绝 NativeScript 上的 promise - Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40000296/

相关文章:

html - 如何显示具有 Angular 功能的HTML?

javascript - 迭代父元素并获取文本节点

javascript - 下拉菜单不垂直拉伸(stretch)

authentication - ASP.NET Core Web API + Angular 2 授权和认证

angular - 如何销毁/停止可观察间隔

javascript - 在 React 中使用泛型键入 defaultProp 箭头函数方法

javascript - exit().remove() 在 d3.js 更新之前不会删除旧图表

javascript - 如何公开嵌入式 Flash 对象的 JavaScript 接口(interface)?

html - 如何修复背景图片上的重复内容?

javascript - 动态更改元素的高度 - Angular 5