2017-12-06 6 views
0

私はすでに他のすべてのブラウザでasync/awaitで作業するプロジェクトを手に入れましたが、明らかにIEでは互換性がありません。私はIE上で実行するには、このコードを取得して助けが必要なJS AsyncとInternet Explorerで動作するのを待っています

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); 
 
    } 
 
};

:私の他の関数を呼び出す

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

。私が使用しなければならないpolyfillやtranspilerのようなものがありますか?私はそれがすでにスムーズに実行されるときにすべてを書き直さなければならないのは嫌です。これは現在クライアント側で実行されており、async--awaitの使用方法を理解できませんでした。皆さん、事前にありがとうございます。

+1

[Babel](https://babeljs.io/)を使用してください。 – djfdev

+0

'$ .getJSON'呼び出しに' await'を使用する理由は実際には分かりません。彼らはお互いに依存していないようです。 – charlietfl

+0

@charlietfl theres 10以上のgetJSON呼び出し、私はちょうどコードを短縮したい。 – BStill

答えて

0

babelを使用して、コードのこの部分をIE11で使用するように変換しました。また、polyfillをインポートして、regeneratorRuntime関数が機能するようにしなければなりませんでした。

関連する問題