Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Added: Sep 12, 2018 10:52 AM
Modified: Sep 12, 2018 10:53 AM
Views: 2
Promise in JS
  1. $(function() {
  2.     let $chart = $('[data-type="chart"]');
  3.  
  4.     if ($chart.length) {
  5.         ajaxAll($chart, function(index) {
  6.             return getChartData($(this).data('url'), index);
  7.         }).done(function() {
  8.             console.log('ajaxAll', 'Все запросы завершенны');
  9.         });
  10.     }
  11.  
  12.     function ajaxAll($selector, each) {
  13.         let promise = [];
  14.         $.each($selector, function() {
  15.             promise.push(each.apply(this, arguments));
  16.         });
  17.         return $.when.apply(null, promise);
  18.     }
  19.  
  20.     function getChartData(link, index) {
  21.         return $.ajax({
  22.             url: link,
  23.             method: 'POST',
  24.             dataType: 'json',
  25.             contentType: 'application/json',
  26.             data: JSON.stringify({
  27.                 data: {
  28.                     item: index
  29.                 }
  30.             }),
  31.             success: function(response) {
  32.                 alert('getChartData -> ' + 'Одиночный запрос завершен успешно!');
  33.                 alert('index: ' + index + '; response: ' + response);
  34.             },
  35.             error: () => alert('error: ' + index),
  36.             done: () => alert('done: ' + index)
  37.         });
  38.     }
  39. });