Typ*_*nda 36 typescript es6-promise angular
所以我正在用打字稿学习Angular 2.
我正在努力编写一个模拟服务,我相信如果服务成功获取对象,则应返回Promise,如果发生任何事情则返回错误.
我尝试过以下代码,但看起来它不是打字稿的写法语法.
更新了CODE:
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 )} );
}
Run Code Online (Sandbox Code Playgroud)
但令我惊讶的是,打字稿抱怨"返回表达式中没有最常见的类型".
什么应该是正确的代码?因此,如果返回正确的MyClass,我可以使用我的组件来消费,如果服务中存在任何MyClass则反映错误.
谢谢
Tam*_*dus 48
将整个函数体嵌入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);
});
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
47764 次 |
最近记录: |