1.举例说明,如何访问promise实例的内部状态?
let promise=new Promise((resolve,reject)=>{
console.log('start...');
setTimeout(()=>{
let random=Math.random();
console.log('结果',random);
if(random>0.5){
resolve(random);
}else{
reject(random);
}
},1000)
console.log('end...');
})
promise.then((sucess)=>{
console.log('成功了',sucess);
}).catch((error)=>{
console.log('失败了',error);
})
2.使用js语法,完成ES6中for of 循环语句的重构。
let arr=[1,2,3];
let aValues=arr.values();
let i;
while(!(i=aValues.next()).done){
console.log(i.value);
}
3.举例说明ES6中箭头函数的this指向。
首先,箭头函数的this指向永远指向外层对象
var x = 11;
var obj = {
x:22,
say:()=>{
console.log(this.x);
}
}
obj.say(); //11
4.使用axios简单的封装一个request.js,需要用到axios的默认设置、拦截器等。
//引入axios和qs依赖
import axios from 'axios'
import qs from 'qs';
//http request拦截器 添加一个请求拦截器
axios.interceptors.request.use(function(config) {
let token = localStorage.getItem("token")
if (token != null) {
//将token放到请求头发送给服务器,将token放在请求头中
config.headers['Authorization'] = token
}
return config;
}, function(error) {
Toast.fail('请求超时');
// Do something with request error
return Promise.reject(error);
});
//添加一个响应拦截器
axios.interceptors.response.use(function(response) {
return response;
}, function(error) {
Toast.fail("服务器连接失败");
return Promise.reject(error);
})
//get方式请求
export function get(url, params) {
return axios({
method: 'get',
url,
params, // get 请求时带的参数
timeout: 10000
})
}
...
//将axios暴露出去
export default axios
5.简述ES6中Iteartor的作用。
1.是为各种数据结构,提供一个统一的、简便的访问接口;
2.是使得数据结构的成员能够按某种次序排列;
3.是 ES6 创造了一种新的遍历命令for…of循环,Iterator 接口主要供for…of消费。