Why do await Task.Delay(10); stops execution in unity Web-GL?

I am using await Task.Delay(10); in unity C# for delay .After build and run in Web-GL format .The execution stops at this line that has delay .When I remove the delay it executes. This is function where delay is to be used.

 public async Task ObjSupport_PositionArrivedAsync(string Coordinate, double Value)
{
    XAxis = GameObject.Find("X-Axis");
    ZAxis = GameObject.Find("Z-Axis");
   switch (Coordinate)
    {
        case "X-":
            {
               //code for case X-
            }
            break;
        case "X+":
            {
                   Value = Value - 100; //Total cube - x value
                    float izvalue = (float)Value;
                    izvalue = izvalue * 0.001f;
                    Debug.Log(izvalue);
                    Vector3 XAxisposition = XAxis.transform.localPosition; //get head position
                    float XAxiscurrentXpos = XAxisposition.x;
                    if (XAxiscurrentXpos <= -izvalue)
                    {

                        Debug.Log("XAxisSmaller");


                        while (XAxiscurrentXpos <= -izvalue)
                        {
                            await Task.Delay(1);
                            XAxiscurrentXpos += 0.001f;
                            Vector3 posx = new Vector3(XAxiscurrentXpos, XAxisposition.y, XAxisposition.z);
                        XAxis.transform.localPosition = posx;
                     
                    }

                    }
                    else
                    {
                        if (XAxiscurrentXpos > -izvalue)
                        {
                            Debug.Log("XAxisGreater");
                            while (XAxiscurrentXpos >= -izvalue)
                            {

                                await Task.Delay(0);
                                XAxiscurrentXpos -= 0.001f;
                                Vector3 posX = new Vector3(XAxiscurrentXpos, XAxisposition.y, XAxisposition.z);
                             XAxis.transform.localPosition = posX;
                           
                        }
                        }
                    }
                }
         break;
case "Z+":
            { //code for Z+ axis }
break;
}
}

And the following is code from where the above function is called.

 public async void ExecuteFile()
   {          
    string lGMCode;
    /// aList is a ArrayList object and fill in
    /// ValidateFile function.
    for (int i = 0; i < aList.Count; i++)
    {
          lGMCode = aList*.ToString();*

if (lGMCode.StartsWith(“X”))
{
XValue = Convert.ToDouble(lGMCode.Substring(1, lGMCode.Length - 1));
if (XValue<0)
{
await arr.ObjSupport_PositionArrivedAsync(“X-”, XValue);
}
else
{

await arr.ObjSupport_PositionArrivedAsync(“X+”, XValue );

}
if (lGMCode.StartsWith(“Z”))
{ //code for Z
}}
Now this is all I am doing .I work fine in windows but when i build it in WEbGl format then it causes problem and stops execution on delay line. Now Kindly suggest me solution.

And I came to know that unity WEb GL do not support threading so what should be its alternate