[AngularJS] Promise: promise chains, orginaze code

复制代码
angular.module(
    "FlightDemo",
    [ "FlightServices" ]
)
    .controller(
    "flightDashboard",
    FlighDashboard
);

(function (angular) {
    "use strict";

    angular.module("filghtServices", [])
        .service("user", function () {
            return{
                email: "answer881215@gmail.comm",
                repository: "http://cs.uef.fi/paikka/zhentiw/personal"
            }
        })
        .service("travelService", function (user, $q) {
            //Fight API (each returns a promise)
            return{
                getDeparture: function (user) {
                    var defer = $q.defer();
                    defer.resolve({
                        userID: user.email,
                        flightID: "UA_21564",
                        date: "01/14/2014 8: 00 AM"
                    });

                    return defer.promise;
                },

                getFlight: function(flightID){
                    return $q.resolve({
                        id: flightID,
                        pilot: "Captain Morgan",
                        plane: {
                            make: "Boeing 717 RC",
                            model: "TA-889"
                        },
                        status: "onTime"
                    });
                }
            }
        })

        .service("weatherService",function($q){
            return{
                getForecast: function(date){
                    return $q.resolve({
                        date: date,
                        forecast: "rain"
                    })
                }
            }
        });
}(window.angular));
复制代码
复制代码
var FlighDashboard = function($scope, user, travelService, weatherService){

    var loadDeparture = function(user){
        return travelService
                .getDeparture(user.email)
                .then(function(){
                    $scope.departure = departure;
                    return departure.flightID;
                }); //return an promise
        },

        loadFlight = function(flightID){
            return travelService
                .getFlight(flightID)
                .then(function(){
                    $scope.flight = flight;
                    return flight;
                });
        },

        loadForecast = function(){
            return weatherService
                    .getForecast($scope.departure.date)
                    .then(function(weather){
                        $scope.weather = weather;
                        return weather;
                    });
        };

    loadDeparture(user)
        .then(loadFlight)
        .then(loadForecast)
        .then("ALL finish");

    $scope.user       = user;
    $scope.departure  = null;
    $scope.flight     = null;
    $scope.weather    = null;

}
复制代码

 

posted @   Zhentiw  阅读(464)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示