promise是一個對象,用戶異步操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="jquery.js">
//一個
// let p = new Promise(function (resolve, reject) {
// $.ajax({
// url: '/arr.text',
// dataType: 'json',
// success(arr) {
// resolve(arr)
// },
// error(err) {
// reject(err)
// }
// })
// })
// p.then(function () {
// alert('成功了')
// }, function () {
// alert('失敗了')
// })
//多個
// let p1 = new Promise(function (resolve, reject) {
// $.ajax({
// url: 'arr.text',
// dataType: 'json',
// success(arr) {
// resolve(arr)
// },
// error(err) {
// reject(err)
// }
// })
// })
// let p2 = new Promise(function (resolve, reject) {
// $.ajax({
// url: 'arr.text',
// dataType: 'json',
// success(arr) {
// resolve(arr)
// },
// error(err) {
// reject(err)
// }
// })
// })
// Promise.all([
// p1, p2
// ], then(function (arr) {
// let [res1, res2] = arr
// console.log(res1, res2)
// alert('全成功')
// }, function () {
// alert('至少失敗一個')
// }))
//優化
function createPromise(url) {
return new Promise(function (resolve, reject) {
$.ajax({
url,
dataType: 'json',
success(arr) {
resolve(arr)
},
error(err) {
reject(err)
}
})
})
}
Promise.all([
createPromise('/arr1.txt'), createPromise('/arr2.txt')
], then(function (arr) {
let [res1, res2] = arr
console.log(res1, res2)
alert('全成功')
}, function () {
alert('至少失敗一個')
}))
//總結
// Promise.all([$.ajax(), $.ajax()]).then(results => {
// //正確
// }, err => {
// //錯誤
// })
</script>
</head>
<body>
</body>
</html>