NetSuite:如果列表中未选择任何值,则发出nlapiRemoveLineItem()问题

时间:2015-07-06 22:54:00

标签: netsuite

所以我们正面临这个奇怪的问题。表单上有一个Customer列表,其类型为List / Record。根据在此列表中选择的客户,我使用nlapiRemoveLineItem()调用清除子表单上的事务列表。一切运作良好TILL客户列表中正确选择了客户。

现在,我只想输入客户名称abc&它会自动填充而不会选择它,在这种情况下,另一个列表中的nlapiRemoveLineItem()会失败并且只是在此列表中添加新项目。

这里到底发生了什么?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

Javascript以异步方式运行,这意味着如果您调用加载客户等事件,浏览器将不会等待结果在执行下一个命令之前返回,在本例中为nlapiRemoveLineItem。

所以发生的事件顺序如下:

  1. 设置客户
  2. 删除订单项
  3. 客户已加载
  4. 来自客户的订单项已填充
  5. 你想要的是:

    1. 设置客户
    2. 客户已加载
    3. 来自客户的订单项已填充
    4. 删除订单项
    5. 要实现这一点,你可以使用像q这样的promise库(最好的方式),做一个while循环来等待客户回来,或者做懒惰的方式并执行setTimeout并执行围绕你希望客户回来的时间。