1、同步:按顺序一条一条数据执行
// 1、同步:按顺序一条一条数据执行
console.log('第1条数据');
console.log('第2条数据');
console.log('第3条数据');
console.log('第4条数据');
console.log('第5条数据');
// 输出结果:1、2、3、4、5
2、异步:前一条数据不影响后一条数据执行
// 2、异步:前一条数据不影响后一条数据执行
setTimeout(() => { console.log('第1条数据') }, 3000);
setTimeout(() => { console.log('第2条数据') }, 1000);
setTimeout(() => { console.log('第3条数据') }, 3000);
setTimeout(() => { console.log('第4条数据') }, 2000);
setTimeout(() => { console.log('第5条数据') }, 3000);
// 输出结果:2、4、1、3、5
3、异步获取数据的方法(3种)
- 回调函数
- ES6的
Promose
内置对象
-
async
函数
4、异步获取数据的方法(回调函数)
// 1、回调函数
var target = 'Hello world!';
function getDate(fn) {
setTimeout(() => {
fn(target);
}, 500)
}
getDate((target) => {
console.log(target); // 输出结果:Hello world!
})
5、异步获取数据的方法(promise
内置对象)
// 2、ES6(promise)内置对象,专业处理异步
var target = 'Hello world!';
var result = new Promise((resolve) => {
setTimeout(() => {
resolve(target);
}, 500)
})
result.then((target) => {
console.log(target); // 输出结果:Hello world!
})
6、异步获取数据的方法(async
函数)
// 3、async函数解决异步问题
function getDate1() {
return new Promise((resolve) => {
setTimeout(() => {
resolve(target);
}, 500)
})
}
async function fun() {
// await:等待
let target1 = await getDate1();
console.log(target1);
let target2 = await getDate1();
console.log(target2);
let target3 = await getDate1();
console.log(target3);
}
fun();