unidades:06_promesas:04_ejemploseguro
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
| unidades:06_promesas:04_ejemploseguro [2014/08/16 11:53] – creado admin | unidades:06_promesas:04_ejemploseguro [2014/09/02 00:23] (actual) – admin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== 6.4 Ejemplo de promesa ====== | ====== 6.4 Ejemplo de promesa ====== | ||
| + | Para acabar esta unidad vamos a seguir con el ejemplo del seguro médico y vamos a modificar el servicio '' | ||
| + | ===== El servicio ===== | ||
| + | El cambio implica que en los métodos '' | ||
| + | |||
| + | Veamos cómo queda la función del servicio. | ||
| + | |||
| + | <sxh js; | ||
| + | function RemoteResource($http, | ||
| + | this.get = function() { | ||
| + | var defered=$q.defer(); | ||
| + | var promise=defered.promise; | ||
| + | | ||
| + | $http({ | ||
| + | method: ' | ||
| + | url: baseUrl + '/ | ||
| + | }).success(function(data, | ||
| + | defered.resolve(data); | ||
| + | }).error(function(data, | ||
| + | defered.reject(status); | ||
| + | }); | ||
| + | | ||
| + | return promise; | ||
| + | | ||
| + | } | ||
| + | this.list = function() { | ||
| + | var defered=$q.defer(); | ||
| + | var promise=defered.promise; | ||
| + | | ||
| + | $http({ | ||
| + | method: ' | ||
| + | url: baseUrl + '/ | ||
| + | }).success(function(data, | ||
| + | defered.resolve(data); | ||
| + | }).error(function(data, | ||
| + | defered.reject(status); | ||
| + | }); | ||
| + | | ||
| + | | ||
| + | return promise; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | * Línea 1: Ahora la función tiene un nuevo parámetro con el servicio '' | ||
| + | * Línea 3: Creamos el objeto '' | ||
| + | * Línea 4: Creamos la promesa que retornará la función. | ||
| + | * Línea 10: Ya no llamamos a la función de // | ||
| + | * Línea 12: Ya no llamamos a la función de // | ||
| + | * Líneas 19,20,26 y 28 : Son los mismos cambios pero en vez de en la función '' | ||
| + | * Línea 32: Retornamos la promesa. | ||
| + | |||
| + | Ahora veamos cómo se crea el provider. | ||
| + | |||
| + | <sxh js; | ||
| + | function RemoteResourceProvider() { | ||
| + | var _baseUrl; | ||
| + | this.setBaseUrl = function(baseUrl) { | ||
| + | _baseUrl = baseUrl; | ||
| + | } | ||
| + | this.$get = [' | ||
| + | return new RemoteResource($http, | ||
| + | }]; | ||
| + | } | ||
| + | </ | ||
| + | * Línea 6: Inyectamos el servicio de promesas llamado '' | ||
| + | * Línea 7: Al crear el objeto le pasamos también el servicio de '' | ||
| + | ===== Los controladores ===== | ||
| + | Ahora modificamos los controladores '' | ||
| + | |||
| + | <sxh js; title: | ||
| + | remoteResource.get().then(function(seguro) { | ||
| + | $scope.seguro = seguro; | ||
| + | }, function(status) { | ||
| + | alert(" | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | <sxh js; title: | ||
| + | remoteResource.list().then(function(seguros) { | ||
| + | $scope.seguros = seguros; | ||
| + | }, function(status) { | ||
| + | alert(" | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | El cambio en ambos controladores es sólo en las llamadas a '' | ||
| + | |||
| + | ===== Ejemplo ===== | ||
| + | Lo único que hemos modificado es el fichero '' | ||
| + | |||
| + | |||
| + | {{url> | ||
| + | |||
| + | ===== Resumen ===== | ||
| + | Después de ver tantos aspectos de las promesas vemos que crear servicios que usen promesas es muy sencillo y permite que dichos servicios puedan ser usados de formas mucho más complejas gracias a todas las utilidades que ofrecen las promesas. | ||
unidades/06_promesas/04_ejemploseguro.1408182804.txt.gz · Última modificación: por admin
