>  기사  >  웹 프론트엔드  >  기존 콜백 함수로 다시 작성된 예시 튜토리얼을 공유하세요.

기존 콜백 함수로 다시 작성된 예시 튜토리얼을 공유하세요.

零下一度
零下一度원래의
2017-06-26 11:50:061308검색

다시 작성 전:

바이두 지도의 좌표 변환을 위한 JavaScript API 예제공식 예제는 다음과 같습니다.

var points = [new BMap.Point(116.3786889372559,39.90762965106183),              new BMap.Point(116.38632786853032,39.90795884517671),              new BMap.Point(116.39534009082035,39.907432133833574),              new BMap.Point(116.40624058825688,39.90789300648029),              new BMap.Point(116.41413701159672,39.90795884517671)
];//地图初始化var bm = new BMap.Map("allmap");
bm.centerAndZoom(new BMap.Point(116.378688937,39.9076296510), 15);//坐标转换完之后的回调函数translateCallback = function (data){  if(data.status === 0) {for (var i = 0; i < data.points.length; i++) {
        bm.addOverlay(new BMap.Marker(data.points[i]));
        bm.setCenter(data.points[i]);
    }
  }
}
setTimeout(function(){var convertor = new BMap.Convertor();
    convertor.translate(points, 1, 5, translateCallback)
}, 1000);

다시 작성 후:

위 코드를 기존 JavaScript 콜백 함수 형식으로 다시 작성합니다.

function translate(points,callback){  var convertor=new BMap.Convertor();
  convertor.translate(points, 1, 5, callback)
  translateCallback = function (data){if(data.status === 0) {      var res=[]; //res用来存放转换后的points数组  for (var i = 0; i < data.points.length; i++) {
          bm.addOverlay(new BMap.Marker(data.points[i]));
          res.push(data.points[i]);
      }
      callback(res)
    }
  }
}//再调用translate函数,translate(points,function(data){
    console.log(data); //data为转换后的points数组})

다시 작성한 후 번역 함수는 두 개의 매개변수를 허용합니다. 첫 번째 매개변수는 원래 Baidu 포인트 배열이고 두 번째 매개변수는 콜백 함수에 전달됩니다.

위 내용은 기존 콜백 함수로 다시 작성된 예시 튜토리얼을 공유하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.