page change angular typescript es6-promise

angular - change - Cómo devolver una promesa adecuada con TypeScript



page title angular 4 (1)

Así que estoy aprendiendo Angular 2 con mecanografía.

Estoy llegando a un punto para escribir un servicio de burla que (creo) debería devolver una Promesa si el servicio obtiene el Objeto con éxito y devuelve un Error si algo sucede.

He intentado seguir el código pero parece que no es una sintaxis de escritura para mecanografía.

Actualizado el CÓDIGO:

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

Pero para mi sorpresa, el texto mecanografiado se quejó de que "No existe el mejor tipo común entre las expresiones de retorno".

¿Cuál debería ser el código correcto? De modo que pudiera usar en mi componente para consumir si se devuelve MyClass apropiado y reflejar un error si existe alguno del servicio.

Gracias


Se considera una buena práctica incrustar todo el cuerpo de la función en el constructor Promise , por lo que si se produce algún error, se convertiría en un rechazo. En este caso también resuelve tu problema, creo.

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