我读过几篇关于在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