什么是同步需要设置同步吗?什么是异步异步不按照代码顺序执行,异步的执行效率更高。不能直接拿到结果。 现在开始执行的函数,会在一段时间执行才完成? 餐厅拿号后,可到外面去逛街 可以每10分钟去餐厅问一下(轮询) 可以扫码用微信接受通知(回调)
异步程序的顺序是什么?异步任务不能拿到结果 将回调函数作为参数给异步任务 异步任务完成时调用回调 调用时把结果作为参数
异步在什么时候会使用从网络获取文件 访问数据库 从网络摄像头获得视频流 或者向VR头罩广播图像
什么是回调- 回调函数是一个作为参数传给另一个JavaScript 函数的函数, 这个回调函数会在传给的函数内部执行。(例如下图的f1函数作为参数传给了f2,然后f2中再调用f1这个参数)
回调有什么缺点?不够规范 - 不同程序员名称不一样,比如有的叫做fail,有的叫做error
容易造成回调地狱
如何判断是同步还是异步查看一个函数的返回值处于下面各种函数之内,就是异步函数 setTimeout
Ajax
AddEventListener
摇色子,如何得到异步的结果如果异步任务有两个结果如何操作方法一:回调接受两个参数方法二:放入两个回调一个对象中两个key 直接放入两个回调函数 用回调函数封装Ajax什么是Promise?简单说就是一个容器,里面保存着某个未来才会结束的事件 const promise = new Promise(function(resolve, reject) { // ... some code if (/* 异步操作成功 */){ resolve(value); } else { reject(error); }});
Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。 promise.then(function(value) { // success}, function(error) { // failure});
如何用Promise封装Ajax呢?任务成功调用resolve函数 任务失败调用reject函数
上面这样封装ajax的缺点如何解决这个问题呢?使用jQuery.ajax(不推荐) 使用axios
为什么推荐使用axios?支持更多形式的参数 支持Promise 支持的更多的功能 如何学习axios
axios的高级用法JSON自动处理 如果发现响应的Content-Type 是json 就会自动调用JSON.parse 所以需要正确设置Content-type
请求拦截器 响应拦截器 可以生成不同实例(对象)
如何使用axios 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |