Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Promise = require("bluebird");
- var request = require("request")
- var ids = [
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'},
- {url: 'http://espn.com.br/'}
- ]
- var queued = [], parallel = 2;
- var namePromises = ids.map(function(id) {
- var mustComplete = Math.max(0, queued.length - parallel + 1);
- var download = Promise.some(queued, mustComplete)
- .then(function() {
- return new Promise(function(resolve, reject){
- request(id.url, function (error, response, body) {
- if (error){
- reject(error.message);
- } else {
- console.log(id.url);
- //console.log(body);
- resolve(response.statusCode);
- }
- });
- });
- });
- queued.push(download);
- console.log(queued.length);
- return download.then(function(item) {
- // after that new download completes, get the item's name.
- return item;
- });
- });
- console.log(queued.length);
- Promise.all(namePromises).then(function(names) {
- // use all names here.
- console.log(names);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement