async のついた function 内で、await 付きで 別の function を呼び出す。
別のfunction の処理が終わるまで待つ。
Promise を返す
resolve() で結果を返す
Promiseとresolveはまだよく分からない
function make_diff_images(nm) { return new Promise(resolve => { var file = "../headless_chrome/abc/img_http2/" + nm; var file2 = "../headless_chrome/abc/img/" + nm; var file3 = "./diff_images/diff.before." + nm; var diff = resemble(file).compareTo(file2).ignoreColors().onComplete(function(data){ console.log(data); data.getDiffImage().pack().pipe(fs.createWriteStream(file3)); resolve(file3) }); }) } async function init(names) { for (var nm of names) { var file3 = await make_diff_images(nm); console.log(file3); } } init(names);