gpt4 book ai didi

javascript - 如何使用feathers.js避免服务在钩子(Hook)中多次运行?

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:31 31 4
gpt4 key购买 nike

我在羽毛钩的羽毛服务中遇到问题。确切的问题是我在羽毛钩子(Hook)中使用羽毛服务,当我在钩子(Hook)中调用服务时,它会运行多次,从而会发生内存问题。我的问题是如何避免服务在钩子(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)
})
})
}

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

最佳答案

理想情况下,服务方法不应在钩子(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);
}
}
}
});

关于javascript - 如何使用feathers.js避免服务在钩子(Hook)中多次运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46217651/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com