Promiseオブジェクトのfinallyメソッドを実行するとエラーが出るのはなぜでしょうか?
いつもお世話になっています。
【質問の主旨】で示すJavaScriptコード(promise.js)について質問です。
ご存知の方がいらっしゃいましたらご教示を願います。
【質問の主旨】
function runAsync(value) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (typeof value === 'number') {
resolve(value * 2);
} else {
reject(new Error(`${value}は数値ではありません。`));
}
}, 500);
});
}
runAsync(15)
.then(response => console.log(`成功[${response}]`))
.catch(error => console.log(`失敗[${error}]`))
.finally(() => console.log('終了'));
このファイルを実行すると2秒後にrunAsync関数の引数になっている数字が、2倍に変化してコンソール画面に表示されるコードです。
.finally(() => console.log('終了'));
^
TypeError: runAsync(...).then(...).catch(...).finally is not a function
node promise.js
でターミナルから実行すると上記のエラーが表示されます。なぜでしょうか?
【質問の補足】
runAsync(15)
.then(response => console.log(`成功[${response}]`))
.catch(error => console.log(`失敗[${error}]`));
上記の通りメソッド2つに減らすと、成功[30]
とだけ表示されます
以上、ご確認のほどよろしくお願い申し上げます。