process.stdout.write在setTimeout中不起作用

时间:2015-06-11 17:05:15

标签: javascript node.js

每当我执行类似

的操作时,在node.js中运行
setTimeout(process.stdout.write, 200, "Test")

我收到以下错误:

Cannot read property 'defaultEncoding' of undefined

我试图设置

setTimeout(process.stdout.write.bind(this), 200, "Test")

仍然无法正常工作

1 个答案:

答案 0 :(得分:1)

当您致电process.stdout.write(...)时,其中的上下文(this)为process.stdout。当您将其传递给setTimeout时,此上下文会丢失。正如您所注意到的,bind是解决此问题的正确方法 - 但您需要绑定到正确的东西:

setTimeout(process.stdout.write.bind(process.stdout), 200, "Test")