当前位置:  开发笔记 > 编程语言 > 正文

如何进行需要其子函数信息的回调

如何解决《如何进行需要其子函数信息的回调》经验,为你挑选了0个好方法。

我正在使用Node.js作为Haraka(一个smtp服务器)插件的项目.

这是Node.JS,我有一个问题回调.我无法将此特定代码转换为使用回调.

所以,这是我的代码:

exports.hook_data = function (next, connection) {
    connection.transaction.add_body_filter('', function (content_type, encoding, body_buffer) {
        var header = connection.transaction.header.get("header");
        if (header == null || header == undefined || header == '') return body_buffer;

        var url = 'https://server.com/api?header=' + header ;
        var request = require('request');
        request.get({ uri: url },
          function (err, resp, body) {
              var resultFromServer = JSON.parse(body);
              return ChangeBuffer(content_type, encoding, body_buffer, resultFromServer);
          }
        );
    });
    return next();
}

此代码不起作用,因为它不等待Request的回调继续.我需要先完成请求next();

这些是要求:

    在结束时exports.hook_data必须返回next().但它只需要在请求后返回它.

    我需要返回一个Bufferin add_body_filter但是我需要创建一个缓冲区,其中包含从服务器获取的信息.

    要获取Get Request,我需要使用header我内部只有的参数()add_body_filter.

所以问题是我之前无法发出请求add_body_filter并将结果放在回调中,因为我需要发出请求的参数只在里面add_body_filter.

有什么建议吗?

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有