Как отправить несколько запросов API один раз? - PullRequest
0 голосов
/ 15 мая 2019

в настоящее время я использовал http, я нашел способ отправить несколько запросов один раз, чтобы отреагировать с помощью axios.

axios.all([
    axios.get('http://google.com'),
    axios.get('http://apple.com')
  ])
  .then(axios.spread((googleRes, appleRes) => {
    // do something with both responses
  });

Вот так Это какой-нибудь способ отправить несколько запросов один раз?

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

@ mezoni ответ правильный.Но это также меньше кода с кешированием.

import 'dart:async';
import 'dart:convert';

import 'package:http/http.dart' as http;

void main() async {
  final urlList = ['http://google.com', 'http://apple.com'];

  final responses = await Future.wait(
    urlList.map((String url) {
      return http.get(url);
    }),
  );

  final List<dynamic> caches = responses.map((response) {
    return json.decode(response.body);
  }).toList();
}

0 голосов
/ 15 мая 2019
import 'dart:async';

import 'package:http/http.dart' as http;

Future<void> main() async {
  var requests = <Future<http.Response>>[];
  requests.add(http.get('http://google.com'));
  requests.add(http.get('http://apple.com'));
  var responses = await Future.wait(requests);
  for (var result in responses) {
    if (result.statusCode != 200) {
      print('Something went wrong');
      break;
    }
  }
}
...