Promise is undefined
対策
cdnからpolyfillライブラリを読み込む
Promiseのpolyfill(IE11お前もか!)にも書かれている通り以下のソースをコピペしたい所だが、結構古い記事だったので今現在最新のものを持ってくるようにする。
多分最新はここに置いてあると思います。
https://www.promisejs.org/
<script src="https://www.promisejs.org/polyfills/promise-done-7.0.4.min.js"></script>
アロー関数を使わない
アロー関数があるとsyntax errorになってしまうのでfunctionに置き換えましょう。
Promiseを返す時 アロー関数ver(動作しない)
function ajaxData() {
return new Promise((resolve) => {
$.ajax({
url : xxx,
type : 'GET',
timeout: 5000
})
.done((data) => {
resolve(data);
})
});
}
Promiseを返す時 function ver(動作する)
function ajaxData() {
return new Promise(function(resolve){
$.ajax({
url : xxx,
type : 'GET',
timeout: 5000
})
.done(function(data){
resolve(data);
})
});
}
Promiseの結果からthenで繋げるとき アロー関数 ver(動作する)
function parseAjaxData() {
ajaxData().then((result) => {
console.log(result);
})
}
Promiseの結果からthenで繋げるとき function ver(動作する)
function parseAjaxData() {
ajaxData().then(function(result) {
console.log(result);
})
}