检查何时使用所需文件中的函数

问题描述

我在 node 中使用了一个带有几个函数的 js 文件效果很好。但是其中一个函数需要触发我主js文件中的一个函数,我不知道如何解决这个问题。

所以我有我的 main.js

const externalObject = require('objectJS');
let myfunctions = require('./stuff/myFunctions.js');

myFunctions.doSomething();

和 myFunctions.js

module.exports =  {
    doSomething: function() {
        doSomethingElse();
        return data;
    }
}

function doSomethingElse() {
    //do some stuff
    if (a) {
        return something;
    } else {
        externalObject.action()
       //or
       //inform main.js to do something with externalObject
   }
}

我的问题是我不知道如何访问 myFunctions.js 中的外部对象(我不能在那里要求它),或者如何通知我的 main.js 这个对象需要更新。

对此有什么建议吗?

解决方法

将函数 externalObject.action 本身作为参数传递给 doSomethingElse

const externalObject = require('objectJS');
let myfunctions = require('./stuff/myFunctions.js');

myFunctions.doSomething(externalObject.action);

模块需要相应地处理 callback 参数:

module.exports =  {
    doSomething: function(callback) {
        doSomethingElse(callback);
        return data;
    }
}

function doSomethingElse(callback) {
    //do some stuff
    if (a) {
        return something;
    } else {
        callback()
       //or
       //inform main.js to do something with externalObject
   }
}

通过这样做,externalObject.action 会从模块内部调用,您可以根据需要从 externalObject 内部更新 externalObject.action