let arr = [];
function getData(fileName, type) {
return fs.readFile(fileName,'utf8', (err, data) => {
if (err) throw err;
return new Promise(function(resolve, reject) {
for (let i = 0; i < data.length; i++) {
arr.push(data[i]);
}
resolve();
});
});
}
getData('./file.txt', 'sample').then((data) => {
console.log(data);
});
上記のコードを使用してnodejsを使用してコマンドラインで実行すると、次のエラーが発生します。ES6でファイルを読む約束
getData('./file.txt', 'sample').then((data) => {
^
TypeError: Cannot read property 'then' of undefined
どうすればこの問題を解決できますか?
あなたが新しいPromise
内全体
fs.readFile
呼び出しをラップして、拒否またはコールバックの結果に応じて、約束を解決したいと思う
'返す新しい約束()'と 'スワップリターンfs.readFile'。戻り値のない 'fs.readFile'を返しています。 – Marty
であり、 'throw'の代わりに' reject'を使うべきです。 – Julian
Martyが既に示したように、現在のバージョンではPromiseではない 'fs.readFile()'の結果を返しています。あなたはおそらく 'then()'の中に別のPromiseを返すことができ、それが連鎖するという事実に基づいて混乱しているでしょう。 – androidavid