我在EventMachine::DeferrableChildProcess.open
实际进行任何类型的错误处理时遇到问题。希望我做错了。这是一个例子:
require "eventmachine"
EM.run do
cp = EM::DeferrableChildProcess.open("ls /trololo")
cp.callback { |data| puts "Received some data: '#{data}'" }
cp.errback { |err| puts "Failed: #{err.inspect}" }
end
我希望这段代码的结果(假设您的系统上实际上没有/trolol
目录)是:“失败:<SomeErrorObject>”。相反,我得到“收到一些数据:''”。ls
雪上加霜的是,由("ls: cannot access /trololo: No such file or directory")引起的错误消息以某种方式打印到 stderr。
我做错了什么,还是基本上没有错误处理EM::DeferrableChildProcess.open
?我得到了类似的结果EM.popen
。