link2466 link2467 link2468 link2469 link2470 link2471 link2472 link2473 link2474 link2475 link2476 link2477 link2478 link2479 link2480 link2481 link2482 link2483 link2484 link2485 link2486 link2487 link2488 link2489 link2490 link2491 link2492 link2493 link2494 link2495 link2496 link2497 link2498 link2499 link2500 link2501 link2502 link2503 link2504 link2505 link2506 link2507 link2508 link2509 link2510 link2511 link2512 link2513 link2514 link2515 link2516 link2517 link2518 link2519 link2520 link2521 link2522 link2523 link2524 link2525 link2526 link2527 link2528 link2529 link2530 link2531 link2532 link2533 link2534 link2535 link2536 link2537 link2538 link2539 link2540 link2541 link2542 link2543 link2544 link2545 link2546 link2547 link2548 link2549 link2550 link2551 link2552 link2553 link2554 link2555 link2556 link2557 link2558 link2559 link2560 link2561 link2562 link2563 link2564 link2565 link2566 link2567 link2568 link2569 link2570 link2571 link2572 link2573 link2574 link2575 link2576 link2577 link2578 link2579 link2580 link2581 link2582 link2583 link2584 link2585 link2586 link2587 link2588 link2589 link2590 link2591 link2592 link2593 link2594 link2595 link2596 link2597 link2598 link2599 link2600 link2601 link2602

[Vue.js] All requests return one by one, not concurrently

could you please help me with my code. I need run requests concurrently but get requests one by one. Below code example (use VueJS method/function)

async manageData() {
// array of chart’s properties
const charts = await axios.post(‘/report/chart_data’, {id: this.id);
// concurrent requests with variable ‘charts’
const result = await Promise.all(
charts.map((chart, key) => axios.post(‘/report/data_range’, {id: key}))
);
}

Solution :

const charts = await axios.post(‘/report/chart_data’, {id: this.id);

Will make a single request and wait until it is completed before continuing. This is necessary, as you then use the charts response to form the subsequent requests.

charts.map((chart, key) => axios.post(‘/report/data_range’, {id: key}))

Will make charts.length number of requests in parallel. This is desirable per the description and because it appears the requests are independent.

the screenshot supports this analysis (first request is waiting for a response before subsequent requests are made in parallel).

If you know the length of the charts response, you could parallelize the first and subsequent requests, since you only use key (index) and not the actual charts to perform the latter requests.

If the concerned with why the latter requests seem to take steadily increasing time to respond, that may be just a coincidence in complexity of each request, or, as user ctt@ pointed out in the comments, could indicate the backend is not handling the requests simultaneously. But that doesn’t seem to be the concern (per the comment).