我讀過幾篇關於在Javascript中使用「睡眠」或「等待」的文章。但是,它們都使用客戶端Javascript。我需要在Scheduled NetSuite SuiteScript中執行此操作。我試過setTimeout(),它告訴我它找不到函數(以及window.setTimeout())。NetSuite預定腳本「睡眠」
如果我必須做一個無限循環if條件,給我我想要的延遲,我會這樣做,但它不是理想的。我想知道是否有一種簡單的「睡眠」或「等待」方式來延遲執行代碼。
我的目的是因爲我的代碼刪除記錄。在我當前的設置中,如果這些記錄中的2個被刪除的距離太近,NS會引發「意外錯誤」並停止。如果兩者之間存在足夠長的停頓,那麼它就會起作用。我試圖自動化,所以我不會在這裏整天刪除記錄。
到目前爲止,我已經檢查了帖子: How to create javascript delay function JavaScript.setTimeout JavaScript sleep/wait before continuing What is the JavaScript version of sleep()?
煤礦是不是重複對所有這些,因爲他們所有的假設客戶端和不特定NetSuite的SuiteScript。謝謝!
我還沒有嘗試過/ catch。即使我發現錯誤,我也不確定這會有什麼幫助。到目前爲止,我注意到需要大約10分鐘的等待時間。 錯誤是由於內置的庫存模塊。我們可以告訴的是,如果您刪除與同一個SO相關的2個配送太快,則會引發意外錯誤。我們相信(和NS同意),這是因爲它正在對後端進行庫存處理。因此需要延遲來完成這個過程。我會嘗試你的上面的代碼現在 – TMann
如果你真的需要等待10分鐘,那將是令人驚訝的,但如果是這樣的話,那麼就這樣吧。如果您真的需要等待,爲什麼不讓您的預定腳本一次刪除一條記錄,並安排它每15分鐘運行一次?或者,如果問題僅表明與同一SO相關的履行情況,那麼在您的預定腳本中,將您的履行按SO分組,並且僅刪除每個SO的第一個關聯履行。 – erictgrubaugh
您是否已將會計期間開啓但未合理關閉?我有一個有類似錯誤的客戶 - 他們從未關閉會計期間,每次庫存移動都會導致庫存水平重新運行約4年(每天3-4萬個訂單)。 – bknights