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();