所以我正在用 typescript 学习 Angular 2。
我正在编写一个模拟服务,如果服务成功获取对象,它(我相信)应该返回一个 Promise,如果发生任何情况,则返回一个错误。
我尝试过以下代码,但看起来它不是打字稿的编写语法。
更新了代码:
saveMyClass(updatedMyClass: MyClass){
//saving MyClass using http service
//return the saved MyClass or error
var savedMyClass : MyClass = someLogicThatReturnsTheSavedObject(updatedMyClass);
if(isSomeCondition)
return Promise.reject(new Error('No reason but to reject'));
else
return new Promise<MyClass>(resolve => {setTimeout( ()=>resolve(savedMyClass),1500 )} );
}
但令我惊讶的是,打字稿抱怨“返回表达式中不存在最佳通用类型”。
正确的代码应该是什么?这样我就可以在我的组件上使用它来消耗是否返回正确的 MyClass 并反映错误(如果服务中存在任何错误)。
Thanks
将整个函数体嵌入到Promise
构造函数,因此如果发生任何错误,它将被转换为拒绝。在这种情况下,我相信它也解决了你的问题。
saveMyClass(updatedMyClass: MyClass) {
return new Promise<Package>((resolve, reject) => {
//saving MyClass using http service
//return the saved MyClass or error
var savedPackage : Package = updatedPackage;
if (isSomeCondition) {
throw new Error('No reason but to reject');
}
setTimeout( () => {
resolve(savedPackage);
}, 1500);
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)