我在羽毛钩的羽毛服务中面临问题。问题是,我在feather hook中使用feather服务,当我在hook中调用服务时,它会运行多次,这样就会出现内存问题。我的问题是如何避免服务多次运行挂钩。
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); } } } });