


Bagaimana untuk Memulakan Perkhidmatan AngularJS dengan Data Asynchronous?
Dec 03, 2024 pm 05:00 PMAngularJS: Memulakan Perkhidmatan dengan Data Asynchronous
Suntikan kebergantungan awal boleh menimbulkan cabaran apabila berurusan dengan sumber data tak segerak. Untuk menangani isu ini, AngularJS menyediakan beberapa pendekatan untuk menyepadukan operasi tak segerak ke dalam perkhidmatan.
1. Menggunakan $routeProvider.when('/path',{ resolve:{...}
Kaedah ini mendedahkan janji dalam perkhidmatan, menjadikan promise approach lebih bersih. Sifat resolve dalam konfigurasi laluan memastikan bahawa kebergantungan diselesaikan sebelum pengawal dibuat seketika.
// Service app.service('MyService', function($http) { var myData = null; return { promise: $http.get('data.json'), ... } ); // Route Config app.config(function($routeProvider){ $routeProvider .when('/', { ... resolve: { MyServiceData: ['MyService', function(MyService) { return MyService.promise; }] } }) }); // Controller app.controller('MainCtrl', function($scope, MyService) { $scope.data = MyService.doStuff(); // ... });
2 Pemintas
Pemintas HTTP membolehkan anda menyambung ke dalam proses permintaan/tindak balas HTTP dan melakukan operasi tak segerak sebelum atau selepas setiap permintaan Anda boleh menggunakan ini untuk memulakan perkhidmatan anda sebaik sahaja respons tersedia.
// Interceptor app.factory('MyInterceptor', function ($q, $rootScope) { var serviceData = null; return { response: function(response) { if (response.config.url === 'data.json') { serviceData = response.data; $rootScope.$broadcast('serviceDataReady', serviceData); } return response; } }); // Apply interceptor app.config(['$httpProvider', function($httpProvider) { $httpProvider.interceptors.push('MyInterceptor'); }]); // Service app.service('MyService', function($rootScope) { $rootScope.$on('serviceDataReady', function(event, data) { myData = data; }); // ... });
3. Menggunakan Janji dan $q
Janji boleh digunakan untuk mewakili operasi tak segerak dan menyelesaikan kebergantungan sebaik sahaja ia tersedia Perkhidmatan $q menyediakan kaedah untuk mencipta dan memanipulasi janji.
app.service('MyService', function($http, $q) { var deferred = $q.defer(); $http.get('data.json').then(function(response) { deferred.resolve(response); }); // ... return { promise: deferred.promise, // ... }; });
Dengan memanfaatkan teknik ini, anda boleh memulakan perkhidmatan dengan data tak segerak dalam AngularJS dengan berkesan. memastikan kebergantungan diselesaikan dengan betul sebelum instantiasi pengawal.
Atas ialah kandungan terperinci Bagaimana untuk Memulakan Perkhidmatan AngularJS dengan Data Asynchronous?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ganti aksara rentetan dalam javascript

jQuery mendapatkan padding/margin elemen

HTTP Debugging dengan Node dan HTTP-Console

Tutorial Persediaan API Carian Google Custom
