Node.jsのcurrentにversion10がきた
Promiseでかけるfsが来た。Experimentalなので注意。
試す
Node.jsのcurrentでversion10が来たのでfs/promisesを試してみる。
nodebrewで入れてるので更新
nodebrew install-binary 10
nodebrew use 10
const fs = require('fs/promises')
で引っ張ってくるとPromiseバージョンのAPIを使える。
これ の最後のと同じことをする
コード
上記でやっている、
ファイル1を取ってきてその中に書いてあるパスのファイル2の内容を出力
をやってみる。
const fs = require('fs/promises');
(async () => {
const nextFile = await fs.readFile('./next.txt', 'utf8');
const message = await fs.readFile(nextFile.trim(), 'utf8');
console.log('async/await:', message);
})()
.catch((err) => console.log(err.message));
使い方の違いはない。
Util等でpromisifyするのと比べて関数を引っ張ってくるのがわかりやすい。
実行結果
% node index.js
(node:5106) ExperimentalWarning: The fs/promises API is experimental
async/await: Hello Node10
ExperimentalWarning って出てる。
warnなし
% node --no-warnings index.js
async/await: Hello Node10
はやく安定版にしてけれ