====== 差别 ======
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
前端专刷_promise相关 [2022/01/10 21:10] 饥人谷的小伙伴 创建 |
前端专刷_promise相关 [2022/01/10 23:06] 饥人谷的小伙伴 |
||
---|---|---|---|
行 2: | 行 2: | ||
1. 手写promise (面试问的手写promise不会要写很难的,写一个简单的包含同步异步逻辑就行了,不需要完全实现A+规范)[来源](https:// | 1. 手写promise (面试问的手写promise不会要写很难的,写一个简单的包含同步异步逻辑就行了,不需要完全实现A+规范)[来源](https:// | ||
- | 2. 谈谈 es6 新特性(Promise 概念)[来源](https:// | + | |
+ | 2. 谈谈 es6 新特性(Promise 概念, async, await)[来源](https:// | ||
3. Promise 有哪些静态方法 [来源](https:// | 3. Promise 有哪些静态方法 [来源](https:// | ||
- | 4. 手写 Promise.all [来源](https:// | + | |
+ | 4. 手写 Promise.all [来源 ](https:// | ||
5. Promise 的静态方法及用途 [来源](https:// | 5. Promise 的静态方法及用途 [来源](https:// | ||
+ | |||
6. Promise的并发控制,一次并发6次,如果中途reject一次,整体函数返回 `Promise.reject`;整体成功则返回成功的结果列表。[来源](https:// | 6. Promise的并发控制,一次并发6次,如果中途reject一次,整体函数返回 `Promise.reject`;整体成功则返回成功的结果列表。[来源](https:// | ||
+ | |||
7. 说说 Promise 的 catch 和 then 的第二个参数区别 [来源](https:// | 7. 说说 Promise 的 catch 和 then 的第二个参数区别 [来源](https:// | ||
+ | |||
8. Promise then方法success回调发生异常,能在catch捕获吗?then的第二个参数,reject方法能捕获吗? | 8. Promise then方法success回调发生异常,能在catch捕获吗?then的第二个参数,reject方法能捕获吗? | ||
+ | |||
+ | 9. 手写 Promise.any [来源](https:// | ||
+ | |||
+ | 10. 如何用js的promise实现一个最多只有两个promise同时运行的函数,要求多个调用该函数时,promise运行完毕后按输入顺序打印出来内容。[来源](https:// | ||
+ | |||
+ | 11. 手写 Promise 2 | ||
+ | |||
+ | 12. 手写 ajax 封装 [来源](https:// | ||
+ | |||
+ | 封装promise形式 | ||
+ | |||
+ | 根据封装后的promise形式写出扩展函数 | ||
+ | |||
+ | * 请求成功则返回值 | ||
+ | * 不成功到达3次则取消请求 | ||
+ | |||
+ | 13. 实现u.console(" | ||
+ | |||
+ | 14. Promise 实现超时请求处理 [来源](https:// | ||
+ | |||
+ | 15. promise实现race | ||
+ | |||
+ | 16. 实现 isPromise | ||
+ | |||
+ | 17. 将 wx.request 封装成 Promise | ||
+ | |||
+ | 试试给这个请求加入延时的机制 | ||
+ | |||
+ | 延时 reject 只能让 Promise 的值不被改变,但是不会阻止请求发出去,有没有更好的办法 [来源](https:// | ||
+ | |||
+ | 18. 异步编程有哪几种方法,promise里的状态是可变还是不可变吗? [来源](https:// | ||
+ | |||
+ | 19. 写一个最多能并发执行n个promise的队列 [来源](https:// | ||
+ | |||
+ | 20. JS实现一个带并发限制的异步调度器Scheduler,保证同时运行的任务最多有两个。完善代码中Scheduler类,使得以下程序能正确输出。 | ||
+ | |||
+ | ``` | ||
+ | class Scheduler { | ||
+ | add(promiseCreator) { ... } | ||
+ | // ...}const timeout = (time) => new Promise(resolve => { | ||
+ | setTimeout(resolve, | ||
+ | })const scheduler = new Scheduler()const addTask = (time, order) => { | ||
+ | scheduler.add(() => timeout(time)) | ||
+ | .then(() => console.log(order)) | ||
+ | } | ||
+ | | ||
+ | addTask(1000, | ||
+ | addTask(500, | ||
+ | addTask(300, | ||
+ | addTask(400, | ||
+ | ``` | ||
+ | |||
+ | 21. promise 的应用场景 | ||
+ | |||
+ | 22. 算法:实现一个并发控制,有一个最大并发数,然后按照请求顺序依次打印。 [来源](https:// | ||
+ | |||
+ | 23. 实现一个函数,这个函数的参数有三个数组,每个数组里是函数,每个函数会返回一个promise。实现数组中函数中返回的promise进行并发,然后等第一个数组执行完,再去执行第二个,最后执行第三个。最后把所有数组的结果拼接到一起返回。 | ||
+ | |||
+ | 24. Promise和Async/ | ||
+ | |||
+ | 25. 给定一个URL数组,请问js如何实现串行执行[url1, | ||
+ | |||
+ | 26. 利用promise1秒输出1,2秒输出2... | ||
+ | |||
+ | 27. promise+setTimeout实现fetch [来源](https:// | ||
+ | |||
+ | 28. 用Promise实现延迟3秒后输出 delay(3000).then(f, | ||
+ | |||
+ | 29. 用 Promise 封装一个定时器 [来源](https:// | ||
+ | |||
+ | 30. 三个异步fetch请求,只要有一个请求变成resolve,那么就输出对应的result,并结束。如果请求过程中出现错误,则需要在最后输出错误信息 [来源](https:// | ||
+ | |||
+ | 31. promise实现文件读取 | ||
+ | |||
+ | 32. promise的三种状态,如何取消一个promise | ||
+ | |||
+ | 33. promise 的兼容性 | ||
+ | |||
+ | 34. 说一下promise在出错的时候怎样处理 | ||
+ | |||
+ | 35. 实现一个有并发限制的Promise.all [来源](https:// | ||
+ | |||
+ | 36. 使用Promise实现网络请求超时判断,超过三秒视为超时。 | ||
+ | |||
+ | 37. promise的三种状态 是否可以从fullfilled转移到rejected | ||
+ | |||
+ | 38. promise错误捕获的方式有哪些 [来源](https:// | ||
+ | |||
+ | 39. promise实现并发怎么做?怎么使用一个方法实现promise.all失败的请求 | ||
+ | |||
+ | | ||
+ | |||
+ | 40. Promise.prototype.then接收的参数有哪些 | ||
+ | |||
+ | 41. settimeout和promise区别 | ||
+ | |||
+ | 42. 场景题:为了解决长任务阻塞问题,把这个长任务拆分为10万个子任务在for循环中执行,那么子任务用promise还是用settimeout更能解决阻塞问题 [来源](https:// | ||
+ | |||
+ | 43. promise有几种状态→状态已经变化了还可以更换吗 | ||
+ | |||
+ | 44. Promise与之前方式的优势,如何解决Promise的缺点(async await) [来源](https:// | ||
+ | |||
+ | 45. 实现Promise,实现到链式调用 | ||
+ | |||
+ | 46. 讲讲promise,all里面有一个失败了返回什么,race第一个结束的失败了返回什么 | ||
+ | |||
+ | | ||
+ | |||
+ | async await原理 generator每一步next返回什么 | ||
+ | |||
+ | 47. promise.resolve是干嘛的 [来源](https:// | ||
+ | |||
+ | 48. promise.then如何实现链式调用 | ||
+ | |||
+ | 49. promise.then不返还一个promise还能用then吗 | ||
+ | |||
+ | 50. promise.finally的作用,如何自己实现finally | ||
+ | |||
+ | 51. promise原理 | ||
+ | |||
+ | 52. Promise里面all、race分别有什么区别,作用是什么,race有什么用 [来源](https:// | ||
+ | |||
+ | 53. Promise如何捕获异常(then().catch())catch能捕获到上一个then函数里面的异常吗(Promise中的then第二个参数和catch有什么区别) | ||
+ | |||
+ | 54. 为什么要用then链代替之前的回调函数(避免回调地狱,除此之外还有什么原因) | ||
+ | |||
+ | 55. Promise的串行怎么实现 (比如有100个异步任务怎么实现两两一组执行) [来源](https:// | ||
+ | |||
+ | 56. Promise相关实例和静态方法的概念,如何在 Promise.all 失败的时候判断是哪个失败的 [来源](https:// | ||
+ | |||
+ | 57. 如何中断Promise的链式调用 | ||
+ | |||
+ | 58. 用 es5 实现 promise [来源](https:// | ||
+ | |||
+ |