回调函数不会返回内容

时间:2017-07-10 10:11:23

标签: node.js etherpad

我有一个问题,我没有找到任何解决方案。 此代码无效。在回调函数内部。你可以解决我的问题。

exports.eejsBlock_body = function (hook_name, args, cb) {
  customUtils.getOneValueSql(getQuery).then(function (returnData) {     
    args.content = args.content + eejs.require("ep_top_menu/templates/index.ejs", {"padname":returnData}, module);
    return cb();
    });
 };

2 个答案:

答案 0 :(得分:0)

exports.eejsBlock_body = function (hook_name, args, cb) {
  customUtils.getOneValueSql(getQuery).then(function (returnData) {     
    args.content = args.content + eejs.require("ep_top_menu/templates/index.ejs", {"padname":returnData}, module);
      return cb(null, args.content);
    });
 };

然后使用:

eejsBlock_body(paramHook, paramArgs, function(err, content){
   if(err){
     console.log(err);
   } else {
     console.log(content)
   }
 });

答案 1 :(得分:0)

看起来eejsBlock_body无法与args.content的异步更改一起使用。您是否需要该查询才能在钩子上运行?您是否只是为了获取pad名称/ id而运行查询?

如果是这种情况,您可以在<span id='padId'/>上放置占位符(例如:index.ejs),然后使用挂钩postAceInit在其中插入换页符名称:

exports.postAceInit = function(type, context) {
  $('#padId').text(clientVars.padId);
}