Nodejs的udemy课程代码错误
从udemy nodejs课程运行一些代码,我遇到了一个问题。 我知道它做了什么(或者它应该做什么),但是我不明白为什么greet2函数在事件完成后向我显示'undefined'。
代码是:
var fs = require('fs'); var greet = fs.readFileSync(__dirname + '/greet.txt', 'utf8'); console.log(greet); var greet2 = fs.readFile(__dirname, + '/greet.txt', 'utf8', function(err, data) { console.log(data); }); console.log('Done!');
我正在控制台中显示:
你好,世界! 完成! 未定义
任何想法,为什么我得到未定义的greet2?
谢谢
更改:
var greet2 = fs.readFile(__dirname, + '/greet.txt', 'utf8', function(err, data) { console.log(data); });
至:
var greet2 = fs.readFile(__dirname + '/greet.txt', 'utf8', function(err, data) { console.log(data); });
(一个额外的逗号)
你的代码工作,但你传递给readFile
函数的是__dirname
,然后是+'/greet.txt'
它的计算结果为NaN
,然后是其他参数,如'utf8'
和callback。
JavaScript函数总是返回一些东西。 如果在函数中没有指定要返回的内容,默认情况下会返回“undefined”。
但是不要担心,这并不影响任何事情,你可以忽略它。 这不会造成任何伤害。
任何想法,为什么我得到未定义的greet2?
fs.readFile
是一个asynchronous函数,当它被初始化的时候它没有返回,所以当你调用它时它不会返回任何值。
你有一个初始值和asynchronous调用的例子是var timeout = setTimeout(callback, mm)
。 tout
将保存一个值,您可以使用clearTimeout(tout)
来清除它。