Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var Promise = require("bluebird");
  2. var request = require("request")
  3. var ids = [
  4.     {url: 'http://espn.com.br/'},
  5.     {url: 'http://espn.com.br/'},
  6.     {url: 'http://espn.com.br/'},
  7.     {url: 'http://espn.com.br/'},
  8.     {url: 'http://espn.com.br/'},
  9.     {url: 'http://espn.com.br/'},
  10.     {url: 'http://espn.com.br/'},
  11.     {url: 'http://espn.com.br/'},
  12.     {url: 'http://espn.com.br/'},
  13.     {url: 'http://espn.com.br/'},
  14.     {url: 'http://espn.com.br/'},
  15.     {url: 'http://espn.com.br/'},
  16.     {url: 'http://espn.com.br/'},
  17.     {url: 'http://espn.com.br/'},
  18.     {url: 'http://espn.com.br/'},
  19.     {url: 'http://espn.com.br/'},
  20.     {url: 'http://espn.com.br/'},
  21.     {url: 'http://espn.com.br/'},
  22.     {url: 'http://espn.com.br/'},
  23.     {url: 'http://espn.com.br/'},
  24.     {url: 'http://espn.com.br/'},
  25.     {url: 'http://espn.com.br/'},
  26.     {url: 'http://espn.com.br/'},
  27.     {url: 'http://espn.com.br/'}
  28. ]
  29.  
  30. var queued = [], parallel = 2;
  31.  
  32. var namePromises = ids.map(function(id) {
  33.  
  34.     var mustComplete = Math.max(0, queued.length - parallel + 1);
  35.  
  36.     var download = Promise.some(queued, mustComplete)
  37.         .then(function() {
  38.             return new Promise(function(resolve, reject){
  39.                 request(id.url, function (error, response, body) {
  40.                     if (error){
  41.                         reject(error.message);
  42.                     } else {
  43.                         console.log(id.url);
  44.                         //console.log(body);
  45.                         resolve(response.statusCode);
  46.                     }
  47.                 });                
  48.             });
  49.         });
  50.     queued.push(download);
  51.     console.log(queued.length);
  52.     return download.then(function(item) {
  53.         // after that new download completes, get the item's name.    
  54.         return item;
  55.     });
  56.  
  57.   });
  58. console.log(queued.length);
  59. Promise.all(namePromises).then(function(names) {
  60.     // use all names here.
  61.      console.log(names);
  62. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement