当前位置: 首页 > 后端技术 > Node.js

【Step-By-Step】深度解析高频面试题-周报05

时间:2023-04-04 01:12:28 Node.js

本周面试题一览:实现Promise.race方法JSONP原理及简单实现实现一个数组去重方法搞清楚有哪些floatingmethods写一篇关于通用currying函数currying的更多优质文章可以戳:https://github.com/YvetteLau/...20.实现Promise.race方法在实现Promise.race方法之前,我们首先要了解Promise.race的功能和特性,因为了解了Promise.race的功能和特性后,我们才能更进一步去写实现。Promise.race函数Promise.race(iterable)返回一个promise,一旦iterable中的一个promise状态被fulfilled/rejected,那么Promise.race返回的promise状态就是fulfilled/rejected.letp=Promise.race([p1,p2,p3]);只要p1、p2、p3中的一个实例先改变状态,p的状态就会随之改变。第一个变异的Promise实例的返回值被传递给p的回调函数。Promise.race的特点Promise.race的返回值是一个promise实例。如果传入的参数是一个空的可迭代对象,那么Promise.race返回的promise总是pending。如果传入的参数不包含任何承诺,则Promise.race返回一个未决的承诺。如果iterable包含一个或多个非承诺值或已解决的承诺,Promise.race将解析为在iterable中找到的第一个值。Promise.race的实现Promise.race=function(promises){//promises传入一个可迭代对象(省略参数合法性判断)promises=Array.from(promises);//将可迭代对象转换为数组returnnewPromise((resolve,reject)=>{if(promises.length===0){//空可迭代对象;//用于挂起状态}else{for(leti=0;i{resolve(data);}).catch((reason)=>{reject(reason);})}}});}21.JSONP原理及简单实现虽然浏览器有同源策略,但是