我正在使用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();
}
Run Code Online (Sandbox Code Playgroud)
此代码不起作用,因为它不等待Request的回调继续.我需要先完成请求next();
这些是要求:
exports.hook_data必须返回next().但它只需要在请求后返回它.