返回未定义的函数在返回结果之前似乎 console.log 是 运行?需要承诺吗?

Function returning undefined seems like console.log is running before result is returned? Promise needed?

我在另一个文件中有一个函数,我想得到它的响应,然后在退出我的控制器函数之前对该响应做一些事情。

这是所需文件中的代码:

exports.counter = function(companyID) {
    options.json.companyID = companyID
    request.post('/monitorCounter', options, (error, response, body) => {
        if (error) {
            console.log(error);
            throw error;
        }
        if(body.success == true) return true
    });    
}

这是我要求 file/function

const monitorCounter = require('../controllers/counter').counter

这就是我在主控制器文件中尝试 test/use 的方式

let valid = monitorCounter(companyID)
console.log(`Valid: ${valid}`)

我期望它 return 为真(通过 console.log 测试并且功能按预期工作),但我变得不确定。

我在想我需要一个承诺,但不确定如何将它作为一个不同的文件来实现,而且我也没有完全更新承诺(目前正在处理)

我设法弄清楚如何实现我需要的承诺,我之前尝试过但不是'return' promose 而是调用 resolve/reject 错误。以下是此问题的工作代码。

exports.counter = function(companyID) {
    return new Promise((resolve, reject) => {
        options.json.companyID = companyID
        request.post('/monitorCounter', options, (error, response, body) => {
            if (error) {
                console.log(error);
                throw error;
            }
            if(body.success == true) resolve(true)
            if(body.success != true) reject(false)
        });    
    });
}