promise的练习学习

117 阅读2分钟

const obj1 = {
	a: 1,
	b: 2
}
const obj2 = {
	a: 2,
	c: 3,
	d: 4
}
const obj3 = { ...obj1, ...obj2 }
console.log(obj3)
const isGreater = (a, b) => {
	return new Promise((resolve, reject) => {
		if(a > b) {
			resolve(true)
		} else {
			reject(false)
		}
	})
}
isGreater(1, 2)
.then(result => {
	console.log('greater')
})
.catch(result => {
	console.log('smaller')
})
let p = new Promise(function (resolve, reject) {
  	console.log("蚂蚁部落一");
  	reject("我是最后一步吗");
})
p.then(function (val) { 
  	console.log(val) 
})
.catch(function(vall){
	console.log(vall)
})
console.log("蚂蚁部落三");
、******************************************************一、Pomise.all的使用*********************************************************
			
let p1 = new Promise(function (resolve, reject) {
  	console.log("蚂蚁部落一");
  	resolve("我是最后一步吗");
})

let p2 = new Promise((resolve, reject) => {
  	resolve('success')
})
Promise.all([p1, p2]).then((result) => {
  	console.log(result)               //['成功了', 'success']
}).catch((error) => {
  	console.log(error)
})
Promise.all([p1,p2]).then((result) => {
  	console.log(result)
  	console.log(result.length)
}).catch((error) => {
  	console.log(error)      // 失败了,打出 '失败'
})





let wake = (time) => {
  	return new Promise((resolve, reject) => {
	    setTimeout(() => {
	      resolve(`${time / 1000}秒后醒来`)
	    }, time)
  	})
}
let p1 = wake(5000)
console.log(p1)
let p2 = wake(2000)
Promise.all([p1, p2]).then((result) => {
  console.log(result)       // [ '3秒后醒来', '2秒后醒来' ]
}).catch((error) => {
  console.log(error)
})
***************************************************二Promse.race就是赛跑的意思,意思就是说,Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态************************************************************
let p1 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('success')
  },200)
})

let p2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    reject('failed')
  }, 500)
})

Promise.race([p1, p2]).then((result) => {
  console.log(result)
}).catch((error) => {
  console.log(error)  // 打开的是 'failed'
})



var p1 = new Promise((resolve, reject) => { 
  setTimeout(resolve, 1000, 'one'); 
}); 
var p2 = new Promise((resolve, reject) => { 
  setTimeout(resolve, 2000, 'two'); 
});
var p3 = new Promise((resolve, reject) => {
  setTimeout(resolve, 3000, 'three');
});
var p4 = new Promise((resolve, reject) => {
  setTimeout(resolve, 4000, 'four');
});
var p5 = new Promise((resolve, reject) => {
   setTimeout(resolve, 5000, 'five');
});

Promise.all([p1, p2, p3, p4, p5]).then(values => { 
  console.log(values);
}, reason => {
  console.log(reason)
});
Promise.all([p1, p2, p3, p4, p5]).then(values => { 
  console.log(values);
}).catch(reason => { 
  console.log(reason)
});
*/

function runAsync1() {
    var seven = new Promise (function (resolve, reject) {
        //异步操作
        setTimeout(function () {

            console.log("执行完成1")
            resolve("梁静茹")
        },3000)
    });
    return seven;
}
function runAsync2() {
    var seven = new Promise (function (resolve, reject) {
        //异步操作
        setTimeout(function () {
            console.log("执行完成2")
            resolve("绣花")
        },2000)
    });
    return seven;
}
function runAsync3() {
    var seven = new Promise (function (resolve, reject) {
        setTimeout(function () {
            console.log("执行完成3")
            resolve("听着风")
        },2000)
    });
    return seven;
}
//all并行执行多个异步操作(谁跑的慢,以谁为准执行回调)
Promise.all([runAsync1(),runAsync2(),runAsync3()])
  .then(function (results) {
  	console.log(results)
	}).catch(reason => { 
  console.log(reason)
})