URL一括ダウンロード
"use strict";
const fs = require("fs");
const url = require("url");
const request = require("request"); // dependency
const throat = require("throat"); // dependency
const list = fs.readFileSync("list.txt");
Promise.all(list.map(throat(5, uri => dl(uri).then(() => {
  console.log("DONE!  " + uri);
}, err => {
  console.log(err);
  console.log("ERROR! " + uri);
  throw err;
}))))
  .then(() => {
    console.log("done!");
  })
  .catch(err => {
    console.error(err);
  });
function dl(uri) {
  const filename = url.parse(uri).pathname.replace(/.*\//, "");
  return new Promise((resolve, reject) => {
    request(uri)
      .pipe(fs.createWriteStream("images/" + filename))
      .on("close", resolve)
      .on("error", reject);
  });
}