我需要在提升我的Sails.js应用程序时使用promise来执行某些初始化任务。如何用钩子取消sails.js电梯
如果这些任务以任何方式失败,应用程序不应该继续提升,必须记录错误。此外,这些任务可能无法在有限的预定时间内完成(请参阅the hook definition)。
然而,挂钩系统只允许调用CB()当钩已成功完成,而且似乎不是任何方式,我可以让应用程序:
- 崩溃,没有超时(hook:X:error)
- 无法继续,直到前面的勾,肯定是成功还是失败
有没有办法做到这一点?
我需要在提升我的Sails.js应用程序时使用promise来执行某些初始化任务。如何用钩子取消sails.js电梯
如果这些任务以任何方式失败,应用程序不应该继续提升,必须记录错误。此外,这些任务可能无法在有限的预定时间内完成(请参阅the hook definition)。
然而,挂钩系统只允许调用CB()当钩已成功完成,而且似乎不是任何方式,我可以让应用程序:
有没有办法做到这一点?
首先,如果初始化任务是特定于应用程序,你可以只使用bootstrap,而不是一个钩。将错误作为参数调用引导回调会导致Sails退出。
如果做一定要使用钩子,你可以强制帆退出在几乎相同的方式 - 从调用挂钩的initialize
方法中的回调与任何非空参数将信号失败,并导致Sails退出。一般情况下,Node应用程序就是这种情况:任何时候都需要调用回调函数,传递一个非空值作为第一个参数会发出错误信号。
所以,如果你的钩子的initialize
揭开序幕的任务需要运行,并且不调用cb()
直到他们都完成,并且在任务失败的任何一点要求cb(<some error>)
,那么你会遇到这样的情况在挂钩完成之前,帆将不会加载,如果挂钩未能完成任务,则挂出。
谢谢!后续问题:首先,sails.config.bootstrap或hooks是什么? – amyspark
钩子首先运行,所有Sails钩子都在引导程序中可用。 – sgress454