如何避免使用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)
      })
  })
}

我的预期解决方案是该服务应在Hook。

理想情况下,服务方法不应该在钩子上自调用,但是如果这样做,则需要打破条件,以免它不断地在无限的循环中呼唤。这可以由传递一个参数,该参数将不设置自指呼叫:

app.service('myservice').hooks({
  before: {
    find(hook) {
      if(!hook.params.fromOtherHook) {
        const newParams = Object.assign({
          fromOtherHook: true
        }, hook.params);
        return hook.service.find(newParams);
      }
    }
  }
});

相关内容

  • 没有找到相关文章

最新更新