(1)解决的传统方式
回调函数
(2)流行的方式
1.promise(重要)
-
概念:promise是解决异步编程的一种方式。
-
状态:promise有三种状态,状态一旦改变就不能更改。
- resolve 成功时
- reject 失败时
- pending 正在进行时
-
静态方法
- then() 当成功时执行then()方法
- catch() 捕捉执行过程中抛出的错误
-
方法
- promise.all() 用多个primise实例包装成一个新的实例。接受一个数组当做参数。只有数组中每个状态都是resolve,实例才为resolve。
- promise.race() 谁快先输出
const v1 = Promise(function(resolve, reject) {
resolve("任务1");
}).then(function(data) {
console.log(data);
});
const v2 = Promise(function(resolve, reject) {
resolve('任务2');
}).then(function(data) {
console.log(data);
})
console.log("主线程任务");
//输出结果:主线程任务 任务1 任务2
//promise.all()
Promise.all([v1, v2]).then(function() {
console.log("任务1和任务2执行完毕");
})
//输出结果:
主线程任务
任务1
任务2
任务1和任务2执行完毕
Promise.race([v1, v2]).then