Node.jsで実行してください。
'use strict'; const fs = require('fs'); function readFile(fileName) { return new Promise( (onFulfilled, onRejected)=> { fs.readFile(fileName, "utf-8", (err, data)=>{ // console.log(data); if (err) { // console.error("readFile error:" + fileName + err); onRejected(err); } onFulfilled(data); }); }); } function writeFile(fileName, data) { return new Promise( (onFulfilled, onRejected)=> { fs.writeFile(fileName, data, err=>{ if (err) { // console.error("writeFile error:" + fileName + err); onRejected(err); } onFulfilled("OK"); }); }); } let allData = ""; readFile("a.txt") .then(function(fileData) { allData += fileData; return readFile("b.txt"); /* プロミスを返してチェイニング可能にする */ }) .then(function(fileData) { allData += fileData; return readFile("c.txt"); }) .then(function(fileData) { allData += fileData; return writeFile("d.txt", allData); }) .then(function(mes) { console.log("ファイルの合体に成功しました。"); }) .catch(err => { console.error("エラーが起こりました:" + err); });