如何使用 feathers.js 避免在挂钩中多次服务 运行?
How to avoid service multiple time run in hook using feathers.js?
我在羽毛挂钩的羽毛服务中遇到问题。确切的问题是我在 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);
}
}
}
});
我在羽毛挂钩的羽毛服务中遇到问题。确切的问题是我在 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);
}
}
}
});