项目课 | Vue.js开发印象云笔记
本课程将以 evernote 云笔记 mac 客户端版的 ui 做原型,做一款线上的云笔记 webapp 产品。产品包括登录、注册、笔记本的创建、修改、删除,笔记的markdown编辑、删除到回收站、markdown 预览、回收站管理等功能。采用前后端分离的开发方式,本课程只负责前端部分的开发。
前端体系|Promise专题 - 原理以及是什么
该文章介绍了编写一个手写Promise.all的原理。首先,该函数接收一个可迭代对象作为参数,并返回一个新的Promise实例。在函数内部,先将可迭代对象转化为数组,并将其中每个非Promise值转化为Promise对象。然后,判断如果转化后的数组长度为0,则直接返回一个resolved状态的Promise对象,并传递一个空数组作为值。接着,定义一个values数组和一个count变量用于记录已完成的Promise数量。接下来,通过for循环遍历每个Promise对象,使用then方法来监听其状态改变。当一个Promise对象被resolved时,将其值存入values数组中,并将count变量加1。当已完成的Promise数量等于总数时,即所有Promise对象都已resolved,返回一个resolved状态的Promise对象,并传递values数组作为值。如果其中任何一个Promise对象被rejected,直接将错误传递给最终的Promise对象。这就是手写Promise.all函数的实现原理。