在角度2中相当于$q.when
发布时间:2020-12-17 17:02:49 所属栏目:安全 来源:网络整理
导读:我习惯使用角度为1的$q.我正在迁移到角度2. 是否有提供.when()方法的等价物? 例如,我需要迁移这个: .service('updateProDB',[ '$rootScope','connectionStatus','$q','storageService','sendToServer','$ionicPopup',function ($rootScope,connectionStatu
我习惯使用角度为1的$q.我正在迁移到角度2.
是否有提供.when()方法的等价物? 例如,我需要迁移这个: .service('updateProDB',[ '$rootScope','connectionStatus','$q','storageService','sendToServer','$ionicPopup',function ($rootScope,connectionStatus,$q,storageService,sendToServer,$ionicPopup) { 'use strict'; var dbReadyDeferred = $q.defer(),prodata = [],prodataFieldNames = []; this.get = function () { var debugOptionUseLocalDB = 0,serverAttempts = 0; if (debugOptionUseLocalDB) { return fallbackToLocalDBfileOrLocalStorageDB(); } if (connectionStatus.f() === 'online') { console.log("Fetching DB from the server:"); return getDBfileXHR(dbUrl(),serverAttempts) .then(function () { // success console.log('-normal XHR request succeeded.'); return dbReadyDeferred.promise; }) .catch(function (){ 解决方法
你可以做同等的,用:
Promise.resolve(promise).then 这基本上不区分承诺和价值观. 是的,你可以用同样的方式实例化q,但使用新的Promise()而不是$q() let promise = Promise((resolve,reject) => { if (/* some async task */) { resolve('Success!'); } else { reject('Oops... something went wrong'); } }); 和 let promise = $q((resolve,reject) => { if (/* some async task */) { resolve('Success!'); } else { reject('Oops... something went wrong'); } }); 应该是等价的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |