2017-12-06 1 views
0

나는 다른 모든 브라우저에서 async/await으로 작업하기 위해 이미 프로젝트를 만들었지 만 IE에서는 호환되지 않는 것으로 보인다. JS 비동기와 인터넷 익스플로러에서 일하기를 기다리고있다

내 다른 함수를 호출

(async function() { 
 
    try { 
 
    await getLayers(); 
 
    } 
 
    catch (err) { 
 
    console.error(err) 
 
    } 
 
}());

:

async function getLayers() { 
 
    const progress = new LoadingOverlayProgress({ 
 
    bar  : { 
 
     "background" : "#e41a1c", 
 
     "top"   : "600px", 
 
     "height"  : "50px" 
 
    }, 
 
    text : { 
 
     "color"   : "black", 
 
     "font-family" : "monospace", 
 
     "top"   : "575px" 
 
    }}); 
 
$.LoadingOverlay("show", { 
 
    custom : progress.Init() 
 
}); 
 
var count = 0; 
 
const interval = setInterval(function(){ 
 
    if (count >= 10) { 
 
    clearInterval(interval); 
 
    delete progress; 
 
    $.LoadingOverlay("hide"); 
 
    return; 
 
    } 
 
    progress.Update(count); 
 
}, 100); 
 
try { 
 
    $.when(
 
    await $.getJSON('http://' + ipAddress + '/api/Barriers/barrierGeoJSON', function (data) { 
 
     createLayer(data[0].row_to_json, 'Barrier'); 
 
     count += 5; 
 
     }), 
 
    await $.getJSON('http://' + ipAddress + '/api/DistPoints/distPointGeoJSON', function (data) { 
 
     createLayer(data[0].row_to_json, 'Disturbance Points'); 
 
     count += 5; 
 
     }); 
 
    } 
 
    catch (err) { 
 
    console.error(err); 
 
    } 
 
};

나는 IE에서 실행하려면이 코드를 받고 도움이 필요합니다. 내가 사용해야하는 polyfill 또는 transpiler의 일종이 있습니까? 나는 그것이 매끄럽게 달릴 때 모두를 다시 써야하는 것을 싫어할 것입니다. 현재 클라이언트 측에서 실행 중이므로 async--await을 사용하는 방법을 알 수 없습니다. 너희들을 미리 감사한다.

+1

[Babel] (https://babeljs.io/)을 사용하십시오. – djfdev

+0

'$ .getJSON' 호출에'await'을 사용하는 이유를 실제로 알지 못합니다. 그들은 서로에 의존하지 않는 것 같아요 – charlietfl

+0

@charlietfl theres 10 더 많은 getJSON 호출, 난 단지 코드를 단축 싶었어요. – BStill

답변

0

babel을 사용하여이 코드 부분을 IE11에서 작동하도록 변환했습니다. 또한 regeneratorRuntime 함수가 작동하도록 polyfill을 가져와야했습니다.

관련 문제