什么是异步?
- 能直接拿到结果的是同步
- 不能直接拿到结果的是异步
**
异步拿到结果的方法
- 轮询:隔一段时间问一次
- 回调:写一个函数给浏览器调用,浏览器把结果作为参数传给该函数
异步不一定要用回调(可用轮询),回调也不是只用于异步(可用于同步),异步和回调是合作关系。
判断异步还是同步
如果一个函数的返回值处于
- setTimeout
- AJAX(即XMLHttpRequest)
- AddEventListener
这个三个东西内部,这个函数就是异步函数
AJAX可以设置为同步,但这样做会使请求期间页面卡住,所以不要用
request.open(“get”, “/5.json”, false) 设置false则为同步,默认异步
面试题
const array = ['1', '2', '3'].map(parseInt)
console.log(array)
// [1, NaN, NaN]
map默认传3个参数(item, index ,array),和parseInt要求参数不同,所以不能简化,正确是
const array = ['1', '2', '3'].map(item => parseInt(item))
console.log(array)
回调地狱