簡體   English   中英

如何用鈎子取消sails.js提升

[英]How to cancel sails.js lift with a hook

提起Sails.js應用程序時,我需要使用Promise執行某些初始化任務。

如果這些任務以任何方式失敗,則該應用程序不應繼續提升,而必須記錄一個錯誤。 另外,這些任務可能不會在有限的預定義時間內完成(請參見hook定義 )。

但是,鈎子系統僅在鈎子成功完成后才允許調用cb(),並且似乎沒有任何方法可以使應用程序運行:

  • 崩潰,沒有超時( hook:X:error
  • 在上一個掛鈎肯定成功或失敗之前,無法繼續

有什么辦法嗎?

首先,如果初始化任務特定於您的應用程序,則您可以僅使用引導程序而不是掛鈎。 以錯誤作為參數調用引導程序回調將導致Sails紓困。

如果一定要使用鈎子,你可以強制帆退出在幾乎相同的方式-從內調用回調函數initialize任何非空參數掛鈎的方法將信號故障,並導致帆退出。 通常,Node應用程序就是這種情況:任何時候您都希望調用回調時,傳遞非null值作為第一個參數將表示錯誤。

因此,如果鈎子的initialize啟動了您需要運行的任務,並且直到它們全部完成后才調用cb() ,並且在任務失敗的任何時候調用cb(<some error>) ,那么您將有這樣一種情況,Sails將在鈎子完成之前才加載,並且在鈎子無法完成其任務時會退出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM