回调后函数不调用

时间:2017-03-10 18:38:01

标签: javascript node.js callback child-process

你好所有StackOverflowers :)都有美好的一天。

我有一个mouse.exe,这是一个简单的C ++应用程序,通过stdio" getmouse"," setmouse x y"和" movemouse x y",分别获取鼠标位置并设置它......

该应用程序运行正常,可以在运行时接收命令。

我制作了一只鼠标'文件夹中的模块,带有此index.js

const spawn = require('child_process').spawn;
const EXE_ROUTE = __dirname + '\\mouse.exe';
var LOADED = false;

var Mouse = function (ready) {
    if(LOADED) return ready && ready();
    LOADED = true;

    var child  = spawn(EXE_ROUTE);
    var stdout = Mouse.in  = child.stdout;
    var stdin  = Mouse.out = child.stdin;
    var err    = Mouse.err = child.stderr;

    Mouse.out.write("movemouse 100 100"); // This Works
    Mouse.out.write("setmouse 20 20"); // This too

    ready && ready();
}

module.exports = Mouse;

我的切入点是app.js

var Mouse = require('./mouse');

Mouse(function () {
    console.log("Im here..."); // This prints
    Mouse.out.write("movemouse 100 100"); // This does not work.
});

Mouse.out.write("movemouse 100 100"); // This Works :)

我有点困惑,因为回调是在Mouse()函数之后调用的,因此在鼠标下面写一行(function(){...})之间不应该有任何区别;并在回调中写出来......

PD:不要告诉我"你不需要在这里使用回调,bc我会做一些异步任务然后我将需要cb"

感谢您的合作。

0 个答案:

没有答案