Возвращаемая строка из HttpRequest

В Дарте я могу сделать:

await HttpRequest.getString(path)

и это вернет строку.

Я хочу создать метод, который будет делать то же самое, но вот так:

HttpRequest request = new HttpRequest();
request
    ..open('Get',getPath)
    ..setRequestHeader('Content-Type','application/json')
    ..send('');
...
return responseString;

Я могу сделать это, используя события и фьючерсы, но я хотел бы понять, как это сделать с помощью async и await.

Изменить: это для dart:html HttpRequest для браузера.


person Alex Haslam    schedule 08.01.2016    source источник
comment
Хотите сделать это где? В JavaScript в браузере? Или в дарте?   -  person Juan Mendes    schedule 08.01.2016
comment
Ах, хороший момент. Думал, что использование HttpRequest было очевидным. Но в браузере.   -  person Alex Haslam    schedule 08.01.2016


Ответы (1)


Не пробовал, но думаю, это то, что вы ищете

import 'dart:html';
import 'dart:async';

main() async {
 print(await getString());
}

Future<String> getString() async {
  String getPath = 'https://dartpad.dartlang.org/';
  HttpRequest request = new HttpRequest();
  request
    ..open('Get',getPath)
    ..setRequestHeader('Content-Type','application/json')
    ..send('');

  // request.onReadyStateChange.listen(print);
  await request.onLoadEnd.first;

  return request.responseText;
}
person Günter Zöchbauer    schedule 08.01.2016
comment
Баночка спасибо! Это тот, или, по крайней мере, он работает и показывает мне шаги, которые мне нужны для чего-то еще. - person Alex Haslam; 08.01.2016