AngularJS $q.defer 延迟对象实例
发布时间:2020-12-17 09:20:12 所属栏目:安全 来源:网络整理
导读:1、介绍 var deferred = $q.defer();// 声明延后执行,表示要去监控后面的执行deferred.resolve(data); // 声明执行成功,即http请求数据成功,可以返回数据了deferred.reject(data); // 声明执行失败,即服务器返回错误return deferred.promise; // 返回承
1、介绍 var deferred = $q.defer();// 声明延后执行,表示要去监控后面的执行 deferred.resolve(data); // 声明执行成功,即http请求数据成功,可以返回数据了 deferred.reject(data); // 声明执行失败,即服务器返回错误 return deferred.promise; // 返回承诺,这里并不是最终数据,而是访问最终数据的API 2、方法定义 var getList = function () { var result = []; var allData = []; var parentData = []; var deferred = $q.defer(); var db = window.sqlitePlugin.openDatabase({ name: 'xunhu.db',location: 'default' }); db.transaction(function (tx) { tx.executeSql('SELECT * FROM ShoppingCart',[],function (tx,rs) { for (var i = 0; i < rs.rows.length; i++) { allData.push(rs.rows.item(i)); } //alert(allData.length); }); tx.executeSql('SELECT DISTINCT(VendorId),VendorName FROM ShoppingCart',rs) { for (var j = 0; j < rs.rows.length; j++) { parentData.push(rs.rows.item(j)); } //alert(parentData.length); }); },function (error) { deferred.reject(error); console.log('transaction error: ' + error.message); },function () { var jsonData = _.map(parentData,function (obj) { var child = _.filter(allData,function (o) { o.checked = false; return o.VendorId == obj.VendorId; }) obj.childList = child; return obj; //delete obj.child }); deferred.resolve(jsonData); }); return deferred.promise; } 3、调用 $scope.$on("$ionicView.beforeEnter",function () { getList().then(function (response) { $rootScope.shoppingCartList = response; },function (error) { alert(123); }); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |