promise
promise相关
wflynn
研究代码中...将随缘更新
展开
-
什么是Promise,Promise的三种状态
什么是Promise对象:Js中进行异步编程的新的解决方案(传统的解决方案——回调函数和事件),用于表示一个异步操作的最终完成 (或失败), 及其结果值.。 语法上:promise是一个构造函数 简单来说,promise对象用来封装一个异步操作并可以获取其结果语法:new Promise(function (resolve, reject) { ... } /* e...原创 2019-09-25 10:40:45 · 18311 阅读 · 0 评论 -
为什么要使用Promise,Promise的优点
1.指定回调函数的方式更加灵活:旧的:必须在启动异步任务前指定promise:启动异步任务=>返回promie对象=>给promise对象绑定回调函数(甚至可以在异步任务结束后指定)假设现在有一个名为 createAudioFileAsync() 的函数,如果给出一些配置和两个回调函数,这个函数能异步地生成音频文件。一个回调函数是文件成功创建时的回调...原创 2019-11-11 21:31:02 · 4788 阅读 · 0 评论 -
Promise的api使用方法
Promise构造函数 Promise构造函数: Promise (excutor) {}excutor函数: 同步执行 (resolve, reject) => {}resolve函数: 内部定义成功时我们调用的函数 value => {}reject函数: 内部定义失败时我们调用的函数 reason => {}说明:...原创 2019-11-04 09:25:13 · 446 阅读 · 0 评论 -
Promise容易出错的理论面试题
如何改变promise的状态?resolve(value): 如果当前是pendding就会变为resolved reject(reason): 如果当前是pendding就会变为rejected 抛出异常: 如果当前是pendding就会变为rejected一个promise指定多个成功/失败回调函数, 都会调用吗?当promise改变为对应状态时都会调用const p = ...原创 2019-11-04 09:47:57 · 276 阅读 · 2 评论 -
Promise面试题
题一setTimeout(() => { console.log(1)}, 0)Promise.resolve().then(() => { console.log(2)})Promise.resolve().then(() => { console.log(4)})console.log(3)// 3 2 4 1题二se...原创 2019-11-11 21:00:44 · 884 阅读 · 0 评论 -
手写一个Promise
/*自定义Promise函数模块: IIFE*/(function (window) { const PENDING = 'pending' const RESOLVED = 'resolved' const REJECTED = 'rejected' /* Promise构造函数 excutor: 执行器函数(同步执行) */ function Pro...原创 2019-11-04 11:30:33 · 225 阅读 · 0 评论 -
async与await详解
async:真正意义上去解决异步回调的问题,同步流程表达异步操作语法:async function foo(){ await 异步操作; await 异步操作;}特点: 1、不需要像Generator去调用next方法,遇到await等待,当前的异步操作完成就往下执行 2、返回的总是Promise对象,可以用then方法进行下一步操作 3、a...原创 2019-11-12 16:59:57 · 199 阅读 · 0 评论 -
Event Loop详解
Event Loop先举一个列子console.log('start');setTimeout(() => { console.log('timeout');});Promise.resolve().then(() => { console.log('resolve');});console.log('end');刚开始整个脚本作为一个宏任务来执行,对于...原创 2019-11-28 14:11:40 · 561 阅读 · 2 评论 -
JS异步之宏队列与微队列
原理图JS中用来存储待执行回调函数的队列包含2个不同特定的列队宏列队:用来保存待执行的宏任务(回调),比如:定时器回调/DOM事件回调/ajax回调 微列队:用来保存待执行的微任务(回调),比如:promise的回调/MutationObserver的回调JS执行时会区别这2个队列JS引擎首先必须先执行所有的初始化同步任务代码 每次准备取出第一个宏任务执行前,都要将所...原创 2019-11-11 16:09:19 · 1042 阅读 · 0 评论 -
axios常用api详解
安装:npm install axiosimport axios from 'axios'Vue.prototype.$axios = axios // 将axios挂载在vue原型链上发送get请求// 第一种方式this.$axios.get( // 也可直接拼接http://localhost:8081/soft/sts/softs?pageIndex=1&...原创 2019-11-08 14:34:13 · 3634 阅读 · 1 评论 -
axios二次封装
封装好的简洁版/*ajax请求函数模块返回值: promise对象(异步返回的数据是: response.data) */import iView from 'iview'import axios from 'axios'// 默认配置axios.defaults.baseURL = 'http://localhost:8081/这是优先级最低的url' // 优先级比ax...原创 2019-11-08 14:46:47 · 282 阅读 · 0 评论 -
ajax面试题大全
什么是AJAX AJAX的全称是Asynchronous JavaScript And XML.,是异步的 JavaScript 和 XML,可以在无需重新加载整个网页的情况下,更新部分网页内容的技术。是用于创建快速动态网页的技术。 依赖于浏览器提供的XMLHttpRequest对象,这个对象使得浏览器可以发出HTTP请求与接收HTTP响应。实现了在页面不刷新的情况下和服务器进行数据交互...原创 2019-11-11 14:34:27 · 672 阅读 · 0 评论 -
post请求几种常见content-type类型
application/x-www-form-urlencoded这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。请求...原创 2019-11-08 14:00:19 · 4878 阅读 · 0 评论