站点工具

用户工具


====== 差别 ======

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

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