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

标签 javascript node.js module ipc child-process

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

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

下面描述了我想要但当然不会工作的...

//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 的异步包。

async on github

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

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

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

这允许被调用的函数退出并将该函数的逻辑执行推迟到下一个时钟周期。

关于javascript - 在 node.js 中为所需模块创建回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18382186/

相关文章:

javascript - 使用简单 Javascript 或 Jquery 的日期选择器

node.js - 使用 WSL2 与安装在 Windows 上的应用程序交互

javascript - 当我更新代码并重建解决方案时,看不到 react 应用程序的变化

haskell - 复导出合格-现在怎么解决,有什么解决办法吗?

python - python 中的 Instagram API 不起作用

Javascript:字符串替换问题

javascript - 取消选中复选框时设置复选框值

javascript - mustache 在服务器(rails)和客户端(javascript)上呈现

node.js - Mailgun-js 向我抛出 301 错误

python - 如何安装scikit图像? (Windows - Python 3.4)