我正在研究Node.JS,我对此有疑问。
我必须阅读一个文件。我是用&fs; fs'节点和' fs.readFile()' FUNC。 这是一个代码
const fs = require('fs');
let input;
fs.readFile('./'+config.file, (err, data) => {
input = data.toString('utf-8');
});
console.log(input) //!!! it gives me 'undefined' result but i expect file's data
我没有任何想法如何解决这个问题。只有我知道这是异步功能。
希望,你会帮助我:3
答案 0 :(得分:1)
由于您的代码是异步的,因此在完成文件读取之前会记录您的变量
您可以使用函数并返回const fs = require('fs');
function myReadFile() {
return new Promise((resolve, reject) => {
fs.readFile('myfile.txt', (err, data) => {
if (err) reject(err);
resolve(data.toString());
});
})
}
myReadFile().then((contents) => {
console.log(contents)
});
:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
答案 1 :(得分:0)
它是异步的,因此它将首先执行同步代码,这就是输入仍未定义的原因。首先执行同步代码然后执行异步代码。因为fs.readFile是异步的,它将在event loop.
中的console.log()之后执行const fs = require('fs');
let input;
fs.readFile('./'+config.file, (err, data) => {
input = data.toString('utf-8');
console.log(input)
});
这应记录您的输入
中异步代码的更多信息