IEは古いのでPromiseは使えないので、ナンチャってpromiseを使うしかない。
<script src="https://www.promisejs.org/polyfills/promise-6.1.0.min.js"></script>
勿論、jQuery.Deferredを使っても、ポリフィル(自作コードの差込み)をするのと同じ。
function aaa() {
var d = new $.Deferred;
setTimeout(function(){
console.log('ヽ| l l│<ハーイ');
d.resolve();
... それとも
d.reject();
}, 1000);
return d.promise();
}
var p = aaa();
p.done(function() {
console.log("(・ー・) オワッタナ");
});
p.fail( function() {
console.log("大丈夫だ。何も問題ない。");
});
または
p.then( function() {
console.log("(・ー・) オワッタナ");
})
, function() {
console.log("大丈夫だ。何も問題ない。");
});
の様に変な書き方になるそうな。
一応thenチェインもできるらしい。
var d = new $.Deferred();
d.resolve();
d.promise()
.then(function() {
console.log('1番');
})
.then(function() {
console.log('2番');
});
.then(function() {
console.log('3番');
});
メデタシメデタシ。