通过util函数中的回调从http.request返回值

时间:2019-01-24 08:10:22

标签: javascript jquery node.js express

因此,我在sendSMS(number, message)文件中有一个utils.js函数。

我从billing.js

调用此泛型函数

现在的问题是,即使我可以在sendSMS()中成功发送http请求,也无法在result函数之外获取callback

有人可以解决吗?如果我在billing.js内编写代码,则可以得到结果/结果,即不是未定义的。

我的猜测是,回调函数作用域已过期,这就是我无法发送结果的原因。但是,如果我错了,请纠正我。另外,因为我对NodeJS还是很陌生,所以做出一个很好的解释。

内部billing.js

const result = utils.sendSMS(number, message);
console.log(result); //undefined
response.send(result);

功能sendSMS(号码,消息)

function sendSMS(number, message) {
    var results;
    const username = 'siddhanta.ghosh.5@gmail.com';
    const sender = 'TXTLCL';
    const msg = urlencode(message);
    const toNumber = number;
    const data = 'username=' + username + '&hash=' + hash + '&sender=' + sender + '&numbers=' + toNumber + '&message=' + msg;
    const options = {
        host: 'api.textlocal.in',
        path: '/send?' + data
    };
    callback ((response_sms) => {
        var result = '';
        response_sms.on('data', (chunk) => {
            result += chunk;
        });
        response_sms.on('end', function () {
            console.log(result); //proper output
            results = result; 
            console.log(results); //proper result
        });
    });
    http.request(options, callback).end();
    return results; //undefined
}

0 个答案:

没有答案