最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何避免使用feathers.js多次挂钩服务?

运维笔记admin9浏览0评论

如何避免使用feathers.js多次挂钩服务?

如何避免使用feathers.js多次挂钩服务?

我在羽毛钩的羽毛服务方​​面遇到了问题。确切的问题是我在羽毛钩中使用羽毛服务,当我在钩子中调用服务时,它会运行多次,以便发生内存问题。我的问题是如何避免服务多次运行挂钩。

function orders(hook){
  return new Promise((resolve,reject) =>{
      hook.app.service('orders')
        .find(hook.app.query)
        .then(result => {
          resolve(result.data)
        }).catch(e =>{
        reject(e)
      })
  })
}

我预期的解决方案是服务应该在钩子上一次运行。

回答如下:

理想情况下,服务方法不应该在钩子中调用自身,但是如果这样做,则需要一个断开条件,这样它就不会在无限循环中调用自身。这可以通过例如如果未设置,则传递将跳过自引用调用的参数:

app.service('myservice').hooks({
  before: {
    find(hook) {
      if(!hook.params.fromOtherHook) {

        const newParams = Object.assign({
          fromOtherHook: true
        }, hook.params);

        return hook.service.find(newParams);
      }
    }
  }
});
发布评论

评论列表(0)

  1. 暂无评论