JavaScriptプログラムに関する各種メモ書き

IE11でも使用可能な Promise

● IE11でも使用可能な Promise

<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
    var promise = new Promise(function(resolve){
        setTimeout( function() {
            console.log('HELLO !!!');
            resolve();
        }, 500 );
    });

    // アロー関数は動作しません。 無名ファンクションで置き換えましょう
    // promise.then((result) => {
    //     console.log('PROMISE');
    // })

    promise.then( function(){
        console.log('PROMISE');
    });

● メソッドを Promise 対応にする

function my_func1()
{
    return new Promise(function(resolve){
        setTimeout( function() {
            console.log('(my_func1)hello !');        
            resolve();
        }, 1500 );
    });
}

function my_func2()
{
    return new Promise(function(resolve){
        console.log('(my_func2)promise world!');
        resolve();
    });
}

呼び出し方

my_func1().then( my_func2 );

呼び出し方( my_func2 に 引数を使う場合)

my_func1().then(function(){
    return my_func2( arg1, arg2 );
});

呼び出し方(無名関数を使う場合)

my_func1().then(function(){
        return new Promise(function(resolve){
            console.log('メッセージ');
            resolve();
    });
});
No.1601
10/15 13:38

edit