- AngularDart : 4.0.0
- Dart : 1.24.1
Loading…
(html) <head> ..... <script defer src="main.dart" type="application/dart"></script> <script defer src="packages/browser/dart.js"></script> </head> <body> <my-app>Loading...</my-app> </body> (pubspec.yaml) ..... environment: sdk: '>=1.24.0
import 'dart:async'; import 'dart:convert'; import 'package:angular/angular.dart'; import 'package:http/browser_client.dart'; @Component( selector: 'my-app', template: ''' <strong>3 http request chain</strong><br /> <button (click)="chain()">send</button><br /> <ul> <li *ngFor="let item of results1"> <span>{{item}}</span> </li> </ul> <strong>3 http request parallel</strong><br /> <button (click)="para()">send</button><br /> <ul> <li *ngFor="let item of results2"> <span>{{item.body}}</span> </li> </ul> <strong>3 http request loop</strong><br /> <button (click)="loop()">send</button><br /> <ul> <li *ngFor="let item of results3"> <span>{{item.body}}</span> </li> </ul> ''', directives: const [CORE_DIRECTIVES], pipes: const [COMMON_PIPES] ) class AppComponent { var client = new BrowserClient(); List results1 = []; List results2 = []; List results3 = []; String _url; String _url1; String _url2; List _https = []; void chain() async { _url = "http://localhost/ngdart/ng4/sample/q_chain_server.php?first=5"; await client.get(_url) .then((response) { results1.add(response.body); _url = "http://localhost/ngdart/ng4/sample/q_chain_server.php?second=1"; client.get(_url) .then((response) { results1.add(response.body); _url = "http://localhost/ngdart/ng4/sample/q_chain_server.php?third=3"; client.get(_url) .then((response) { results1.add(response.body); }); }); }) .whenComplete(client.close); } void para() async { _url = "http://localhost/ngdart/ng4/sample/q_chain_server.php?first=5"; _url1 = "http://localhost/ngdart/ng4/sample/q_chain_server.php?second=1"; _url2 = "http://localhost/ngdart/ng4/sample/q_chain_server.php?third=3"; await Future.wait([client.get(_url),client.get(_url1),client.get(_url2)]) .then((List responses) => results2.addAll(responses)) .catchError((e) => _handleError(e)); } void loop() async { _url = "http://localhost/ngdart/ng4/sample/q_loop_server.php?init=1"; await client.get(_url) .then((response) { List tmp = JSON.decode(response.body); int total = tmp.length; for(var i=0; i < total;i++) { _url = "http://localhost/ngdart/ng4/sample/q_loop_server.php?" + tmp[i][0]; var http = client.get(_url); _https.add(http); } }); await Future.wait(_https) .then((List responses) { results3.addAll(responses); }) .catchError((e) => _handleError(e)); } Exception _handleError(dynamic e) { print(e); // for demo purposes only return new Exception('Server error; cause: $e'); } } void main() { bootstrap(AppComponent, [provide(BrowserClient, useFactory: () => new BrowserClient(), deps: [])] ); }