其他手写系列
mini-diff promise vue3响应式 vue2响应式 mini-vue-router mini-vuex
mini-cli mini-webpack mini-commonJs bind、call、apply、bind
分析
由于async是promise的语法糖,故需要在内部return一个promise
由于promise需要手动调用.then来获取值,故需要手动实现一个函数来自动调用.then
由于.then的返回值仍然是一个promise,故这样仍然不能直接获取
由于generator通过.next获取的返回值是不需要二次调用其他api的,故可以将思路转成实现一个函数自动调用.next
实现
由于generator是一个部署了iterator接口并返回迭代器对象的函数,因此其实是可以考虑手动部署iterator+for...of遍历,但是对于关键字yield而言,暂时未想到好的替代方式,故暂直接用generator模拟一下?
网友评论