promise详解?三种状态?异常捕获?手写完整的符合 promise A+ 内部实现 ?
如何设计Promise.all()
Promise.all实现原理
generator async/await promise?
Promise 和 async/await 和 callback的区别 Promise和Async处理失败的时候有什么区别
Async里面有多个await请求,可以怎么优化(请求是否有依赖)
使用Async会注意哪些东西
await 并行还是串行
介绍ES6的功能?区别es5? 箭头函数this class
let、const声明的变量,暴露在全局,为什么没有挂载到Windows下
ES6中let块作用域是怎么实现的
es6-Module 的加载实现?
ES6和node的commonjs模块化规范区别
es6中的import异步 ?export和import?
Generator 控制函数的执行
export用于对外输出本模块(一个文件可以理解为一个模块)变量的接口
import用于在一个模块中加载另一个含有export接口的模块。
http://es6.ruanyifeng.com/#docs/let
// 手写promise
function Promise(callback) {
var self = this
self.status = 'PENDING' // Promise当前的状态
self.data = undefined // Promise的值
self.onResolvedCallback = [] // Promise resolve时的回调函数集
self.onRejectedCallback = [] // Promise reject时的回调函数集
callback(resolve, reject) // 执行executor并传入相应的参数
function resolve(value){
if(self.status=='PENDING'){
self.status=='FULFILLED';
self.data=value;
// 依次执行成功之后的函数栈
for(var i = 0; i < self.onResolvedCallback.length; i++) {
self.onResolvedCallback[i](value)
}
}
}
function reject(error){
if (self.status === 'PENDING') {
self.status = 'REJECTED'
self.data = error;
// 依次执行失败之后的函数栈
for(var i = 0; i < self.onRejectedCallback.length; i++) {
self.onRejectedCallback[i](error)
}
}
}
}
三种状态:
1 . 等待pending
2 . 完成fulfilled(resolve参数) 3 . 拒绝rejected(reject参数)
复制代码
转载于:https://juejin.im/post/5c99cb84518825193810608b