Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理且更强大。
function sleep(ms) {
return new Promise(function(resolve, reject) {
setTimeout(resolve)
})
}
sleep(500).then(() => console.log('finished'))
Promise.all可以将多个Promise实例包装成一个新的Promise实例。
function fun1(num = -1) {
// 在fun1中返回一个promise对象
return new Promise(function(resolve, reject) {
// 为了体现是异步接口,这里使用一个定时器,延迟3秒
setTimeout(resolve, 2000, 'fun1');
})
};
function fun2(num2 = 200) {
// 在fun2中也返回一个promise对象
return new Promise(function(resolve, reject) {
// 为了和fun1区分开来,fun2延迟1秒
setTimeout(resolve, 1000, 'fun2');
})
}
// 由于fun1和fun2是方法,所以使用fun1()执行该方法
Promise.all([fun1(), fun2()]).then(function(result) {
console.log(result) // 输出应该为 ['fun1','fun2']
})