流石にそろそろPromiseとか

流石にそろそろPromiseをね。 多分下記みたいな感じで動くと思う。

azu.github.io

を読んだ。

polyfill

IE11対応はやっぱり必須です

<script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>

axiosとかの生Promise

axiosを使った場合はこれで良い気がする

function asyncFunction() {
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            resolve('Async Hello world');
        }, 16);
    })
};

asyncFunction().then(function (value) {
    console.log("p-phase1 end")
    return asyncFunction();
}).then(function (value) {
    console.log("p-phase2 end")
}).catch(function (error) {
    console.error("error");
});

jQueryを使った場合

TODO: IE11でも動くか確認する

$.ajax({
    url: 'test.php',
    data: {
        param: '200'
    }
}).then(function () {
    window.console.log("phase1 end");
    return $.ajax({
        url: 'test.php',
        data: {
            param: '200'
        }
    });
}).then(function () {
    window.console.log("phase2 end");
    return $.ajax({
        url: 'test.php',
        data: {
            param: '200'
        }
    })
}).done(function () {
    window.console.log("phase3 end");
    window.console.log("終了");
}).fail(function () {
    window.console.log("fail");
    window.console.log("終了");
})

追記

IE11でも動いた