我需要在提升我的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