Here is the code for http with streaming response
https://github.com/bwu-dart/bwu_docker/blob/0244aa90079e4e8515b5ca412e73b8f858cab809/lib/src/remote_api.dart#L152

On Saturday, January 23, 2016 at 4:46:36 AM UTC+1, Douglas Miller wrote:
>
> I just spent a few hours wrestling with it (the error messages I got 
> weren't very meaningful), and it appears Angular 2's injector can't handle 
> any class not annotated with @Injectable or another Angular-specific 
> annotation. This means Dart's existing non-Angular classes for http 
> handling cannot be injected, and thus cannot have mocks injected in their 
> place. I can write injectable wrappers easily enough, but that's exactly 
> the sort of boilerplate busywork that Angular is supposed to help avoid.
>
> So, I guess I'll write injectable wrappers for now, but having 
> angular2/http available in Dart would be much preferred. I suppose 
> injection of non-annotated classes that have a suitable constructor might 
> also work, but HttpRequest in dart:html seems to be intended for a single 
> request and BrowserClient in package:http says it can't do streaming. What 
> would be the best way to try to get this handled long term, submit an issue 
> report on github?
>
> On Friday, January 22, 2016 at 1:52:40 PM UTC-8, Günter Zöchbauer wrote:
>>
>> I built this code just to get tests running I ported from TypeScript to 
>> Dart
>>
>> import 'dart:async' show Future;
>> import 'dart:html' show HttpRequest;
>> import 'dart:convert' show JSON;
>>
>> class Http {
>>   Future<Response> get(String uri) async {
>>     final HttpRequest req = new HttpRequest()..open('GET', uri);
>>     await req.onLoadEnd.first;
>>     req.send();
>>     return new Response(req);
>>   }
>> }
>>
>> class Response {
>>   final HttpRequest request;
>>   Response(this.request);
>>
>>   String text() => request.responseText;
>>   dynamic json() => JSON.decode(request.response);
>>
>> } 
>>
>> It has only a `get()` method, but other methods are quite similar.
>> You can get inspiration from the TypeScript source about what features to 
>> add.
>> For mocking, just extend it `class MockHttp extends Http {` and override 
>> the methods with dummy actions.
>>
>> On Friday, January 22, 2016 at 7:42:35 PM UTC+1, Douglas Miller wrote:
>>>
>>> But does that work with Angular's dependency injection? I want to be 
>>> able to mock it in tests.
>>>
>>> ...some quick googling says probably yes, I think. I'm new to Dart as 
>>> well as Angular2, looks like I should have explored what Dart itself 
>>> provides a bit more.
>>>
>>> On Friday, January 22, 2016 at 4:00:53 AM UTC-8, Günter Zöchbauer wrote:
>>>>
>>>> There is no Dart implementation for Http. You can just use what 
>>>> `dart:html` or `package:http` provide or create your own wrapper class if 
>>>> you want specific functionality. 
>>>>
>>>> On Friday, January 22, 2016 at 6:08:35 AM UTC+1, Douglas Miller wrote:
>>>>>
>>>>> The api docs say there's an angular2/http library in JavaScript and 
>>>>> TypeScript, but as far as I can tell it doesn't exist in the Dart 
>>>>> version. 
>>>>> Am I missing something? Is it not implemented yet? Something else?
>>>>>
>>>>> The Dart api docs essentially say "see JavaScript docs" full stop, and 
>>>>> I was under the impression that the use of code generation meant all 
>>>>> three 
>>>>> languages would have all exactly the same Angular features, so I'm a bit 
>>>>> surprised and disappointed if this is missing. Searching through the Dart 
>>>>> source that pub got for me, angular2/http does not exist and only one 
>>>>> class 
>>>>> (angular2/src/services/xhr_impl) does anything with http, and that class 
>>>>> appears to be intended for internal use only.
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to