承诺

时间:2015-05-21 11:14:43

标签: sails.js ejs

我刚刚进入Sails.js,并想知道EJS模板系统是否有办法让helper函数运行,其中包括一个promise或数据库查询。这有效:

在config / http.js中

module.exports.http = {
  // ...
  locals: {
    filters: {
      testHelper: function(input) { return input; }
    }
  }
}

这不是:

module.exports.http = {
  // ...
  locals: {
    filters: {
      testHelper: function(input) {
            MyModal.create({test:'test'}).exec(function(err,mm){
                  return input+'-'+mm.test;
              });
          }
    }
  }
}

第一个总是返回"检查",第二个总是返回"未定义"在模板"{{ 'check' | testHelper }}"

中使用时

1 个答案:

答案 0 :(得分:1)

您可以使用像wait.for这样的库来包装并返回承诺。我建议将“帮助器”创建为服务并从全局范围访问它,而不是在视图中注入它。