正在node.js中为所需模块创建回调



在我自己创建的模块中是否有可能创建某种回调?

我的问题是我已经为我的应用程序编写了一个模块。在这个模块中完成了一些任务,现在我的主应用程序应该得到反馈,模块完成了他的任务。

下面描述了我想要但不起作用的东西。。。

//module mymod.js
function start()
{
    var done = false;
    //do some tasks
    done = true;
}
exports.done = done;

主应用

var mymod = require("./mymod.js");
while(!mymod.done)
{
    //do some tasks
}

如果有人能帮助我,我将非常高兴。

PS:我尝试了这种情况下的子进程(fork),但由于它似乎复制了整个进程,我无法再访问打开的OpenCV视频捕获…:(通过使用模块,我没有遇到这个问题,但我得到了这个问题^^

是的,您可以从模块中进行回调。

它就像一样简单

function funcWithCallback(args, callback){
    //do stuff
    callback();
}

虽然我不知道你想完成什么,但While循环看起来很可疑。您可能应该投资于npm的异步包。

github 上的异步

编辑:我觉得有必要澄清一些事情。虽然上面的函数实际上打算使用回调而不是返回值,但它并不完全是异步的。

真正的异步方法是这样做:

function funcWithCallback(args, callback){      
    process.nextTick(function() {
        //do stuff
        callback();
    });     
}

这允许被调用的函数退出,并将该函数的逻辑执行推迟到下一个刻度。

回调语法:

function start(callback)
{

    //do some tasks
    callback(data);
}
exports.start = start;

任何您需要模块的地方:

var mymod = require("./mymod.js");
mymod.start(function(data) {
   //do some tasks , process data
});

相关内容

  • 没有找到相关文章

最新更新