var strGetpoiList1;
  function showtraffic1(o)
    {
       getpoilist(o.pathlist);
       o.pathlist = strGetpoiList1;
       //???不明白call的异步回调的机制
       //想在这一步就得到strGetpoiList1回调的值
       showroad1(o);
    }   
    function getpoilist(strname)
     {
        url =  "RoadSearchOnly.aspx?roadid="+strname+"&dt=" + Date();
        alert("call");
    call(url,this,writeresultList)
    
    }
    
   function writeresultList(outhtml)
    {
        strGetpoiList1 = outhtml;
        alert("call回调");
   }

解决方案 »

  1.   

    主要在这里用function showroad1(o)
    {//显示道路  
        removeRoad();
        var pathlist = o.pathlist;
       // alert(o.title+"|"+o.pathlist);
       if(pathlist!=undefined && pathlist.indexOf('.') != -1)
       {
        //var pathlist = o;
        if(pathlist.indexOf('|') == -1)
        {//普通道路
            var points = [];
            var pts = pathlist.split(',');
            for(var i=0;i<pts.length;i++)
            {
            var pt = new Point();
            pt.x = parseFloat(pts[i]);
            i++;
            pt.y = parseFloat(pts[i]);
            points.push(pt);
            }        roadPolyline = new Polyline(points,CRoadColor,4,0.8,o.title);   //道路样式
        }
        else
        {//道路组合
            var parts = [];
            var lines = pathlist.split('|');
            for(var mm=0;mm<lines.length;mm++)
            {
                var points = [];
                var pts = lines[mm].split(',');
                for(var i=0;i<pts.length;i++)
                {
                var pt = new Point();
                pt.x = parseFloat(pts[i]);
                i++;
                pt.y = parseFloat(pts[i]);
                points.push(pt);
                }
                parts.push(points);
            }
            roadPolyline = new MultiPolyline(parts,CRoadColor,4,0.8,o.title);  //道路样式
        }
        SWMap.addVectorObject(roadPolyline);   
        var ext = roadPolyline.calculateBounds();
        SWMap.zoomToExtents(parseFloat(ext.minX),parseFloat(ext.minY),parseFloat(ext.maxX),parseFloat(ext.maxY));
      }
    }
      

  2.   

    要在后台的类中实现ICallBackHandler这个接口 ,里面有个返回值的函数中.比如此例中的outhtml,如果是asp.net的话
      

  3.   

    修改Ajax调用参数
    xmlHttp.open("GET", url, async);
    把 async 改为 false
      

  4.   

    是asp.net是,搞了一个下午也没整明白.晕,