如何使JavaScript ajax异步调用看起来是同步的?

时间:2018-09-27 15:48:58

标签: javascript ajax asynchronous

我正在使用Dhtmlx UI库。在其网格组件中,您可以使用“ OnEdit”方法即时检查输入。该方法提供以下参数:rowid,colid,newval,oldval。

大多数时候,我会使用OnEdit方法来验证或否定输入的信息,具体取决于调用哪个col以及newval和oldval信息。所以通常我的OnEdit方法看起来像这样:

function OnEdit(rowid,colid,newval,oldval)
{
  if first test fails return false;

  if second test fails return false;

  etc.

  return true;
}

返回false会将字段值重置为oldval。

但是对于一种特殊情况,我需要返回服务器并检查一个值。如果值与我在本地保存的值不同,则需要返回false。所以我的修改方法如下:

function OnEdit(rowid,colid,newval,oldval)
{
  if first test fails return false;

  if second test fails return false;

  //third test  
  Fetch data from server via async ajax and if different to currval then 
  return false.

  ......
  if nth test fails return false;

  etc.

  return true;
}

当然,在第三个测试执行并完成时,系统已经到达测试结束并返回true。

我需要知道如何设置第三项测试,以便系统在继续进行“第n项测试”的情况下等待结果。

1 个答案:

答案 0 :(得分:-1)

我认为您必须在ajax选项中设置async:false。这将等待接收响应 来自服务器。