首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

看完这几道 Promise 面试题,还被面试官问倒算我输

Promise 对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去; reject 函数将 Promise...对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。...,或者是一个不具有 then 方法的对象,则 Promise.resolve 方法返回一个新的 Promise 对象,状态为resolved,Promise.resolve 方法的参数,会同时传给回调函数...答案 // 保存数组中的函数执行后的结果 var data = []; // Promise.resolve方法调用时不带参数,直接返回一个resolved状态的 Promise 对象。...Promise,也就是 sequence, 他的 [[PromiseValue]] 值就是 data, // 而 data(保存数组中的函数执行后的结果) 也会作为参数,传入下次调用的 then 方法中

84920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于 ES6 中 Promise 的面试题

    Promise 对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去; reject 函数将 Promise...对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。...,或者是一个不具有 then 方法的对象,则 Promise.resolve 方法返回一个新的 Promise 对象,状态为resolved,Promise.resolve 方法的参数,会同时传给回调函数...Promise,也就是 sequence, 他的 [[PromiseValue]] 值就是 data, // 而 data(保存数组中的函数执行后的结果) 也会作为参数,传入下次调用的 then...,然后从数组(promises)中删掉这个 Promise 对象,再加入一个新的 Promise,直到全部的 url 被取完,最后再使用 Promise.all 来处理一遍数组(promises)中没有改变状态的

    93920

    promise执行顺序面试题令我头秃,你能作对几道

    Promise 对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject 函数将 Promise 对象的状态从...“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。...,或者是一个不具有 then 方法的对象,则 Promise.resolve 方法返回一个新的 Promise 对象,状态为resolved,Promise.resolve 方法的参数,会同时传给回调函数...答案// 保存数组中的函数执行后的结果var data = [];// Promise.resolve方法调用时不带参数,直接返回一个resolved状态的 Promise 对象。...data,// 而 data(保存数组中的函数执行后的结果) 也会作为参数,传入下次调用的 then 方法中。

    44820

    promise执行顺序面试题令我头秃

    Promise 对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject 函数将 Promise 对象的状态从...“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。...,或者是一个不具有 then 方法的对象,则 Promise.resolve 方法返回一个新的 Promise 对象,状态为resolved,Promise.resolve 方法的参数,会同时传给回调函数...答案// 保存数组中的函数执行后的结果var data = [];// Promise.resolve方法调用时不带参数,直接返回一个resolved状态的 Promise 对象。...data,// 而 data(保存数组中的函数执行后的结果) 也会作为参数,传入下次调用的 then 方法中。

    54320

    关于 ES6 中 Promise 的面试题

    Promise 对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去; reject 函数将 Promise...对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。...,或者是一个不具有 then 方法的对象,则 Promise.resolve 方法返回一个新的 Promise 对象,状态为resolved,Promise.resolve 方法的参数,会同时传给回调函数...答案 // 保存数组中的函数执行后的结果 var data = []; // Promise.resolve方法调用时不带参数,直接返回一个resolved状态的 Promise 对象。...]] 值就是 data, // 而 data(保存数组中的函数执行后的结果) 也会作为参数,传入下次调用的 then 方法中。

    1.3K10

    JQuery 入门学习(三)

    首先看看怎么获取服务器上一个txt文件:使用load()方法     (因为ajax使用同源策略,所以在哪个网站运行代码就只能请求该服务器上的内容,我请求的是w3school中的一个txt文件,大家把代码放在...第三个参数callback是一个回调函数,这个函数在获取到数据后运行,也就是说收到的数据可以在这个函数中处理。...但是数字、字符串很好传递,有些对象却并不那么容易传递,比如数组。我们怎么把一个数组对象通过QQ发送给别人?    ...ajax的json方法     Jquery中从服务器加载json数据的方法是:$.getJSON     它的参数与get()方法完全一样,但是服务器返回结果data应该是一个json格式的字符串...在php5.2以上的版本,有了一对函数json_encode()和json_decode(),分别对php中对象进行json格式的编码和解码。     举个没什么营养的例子。

    8.7K20

    C#进阶系列——WebApi 接口参数不再困惑:传参详解上

    这是get请求最基础的参数传递方式,没什么特别好说的。 2、实体作为参数 如果我们在get请求时想将实体对象做参数直接传递到后台,是否可行呢?我们来看看。...通过dynamic动态类型能顺利得到多个参数,省掉了[FromBody]这个累赘,并且ajax参数的传递不用使用"无厘头"的{"":"value"}这种写法,有没有一种小清新的感觉~~有一点需要注意的是这里在...博主推荐所有基础类型使用dynamic来传递,方便解决了基础类型一个或多个参数的传递,示例如上文。如果园友们有更好的办法,欢迎讨论。...原理解释:使用实体作为参数的时候,前端直接传递普通json,后台直接使用对应的类型去接收即可,不用FromBody。...如果你指定了contentType为application/json,则必须要传递序列化过的对象;如果使用post请求的默认参数类型,则前端直接传递json类型的对象即可。

    5K90

    如何理解jsonp的原理

    当我们用ajax请求一个跨域的域名时会报如下错误 这是因为浏览器基于同源策略,在同源策略下浏览器不允许AjAX跨域获取服务器数据 同源策略是浏览器的安全策略,指的是请求URL地址中的协议,域名和端口都与当前发送请求的页面相同...,我们可能获取不到服务端的数据 由于是异步请求,在还没有获取到data时我们就将其打印,所以出现上面错误 一个完美的解决办法就是通过函数调用,既然服务端可以给我们返回一段js代码,并且在请求服务端后我们可以拿到那段...在实际开发中我们也不可能要求第三方的回调函数和我们前端定义的函数保持一致吧,那有没有一种方案,使我们定义的函数不管是什么都能正常获取数据呢?..."(123)";//拼接函数 //结果输出 123 通过这种方式我们可以自定义函数名,只要保持与传递给服务器的函数名一致即可,但是我们传递的参数名必须与服务端一致,比如服务端接收的参数是callback...jsonp允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了 看到这里你应该理解了

    44520

    JavaScript的异步编程之Promise

    ,这个回调函数两个参数,第一个把Promise 改成为成功的状态,第二个参数把Promise改变成失败的状态,捕获成功和异常可以使用.then和.catch方法,这两个方法返回的也是一个Promise对象...如果then方法中的回调函数返回了值,则会给下一个then方法的回调函数传递这个返回的值,如果没有返回那么默认返回的就是undefined总结一下就是 Promise对象的then方法会返回一个全新的Promise...对象 后面的then方法就是在为上一个then返回的Promise注册回调 前面的then方法中的回调函数的返回值回作为后面then方法回调的参数 如果回调中返回的是Promise, 那后面的then方法的回调会等待他的结束...捕获异常 onRejected 回调会在Promise执行异常或者抛出的异常时触发, 捕获异常有两种方式,第一种, then(成功处理的回调函数, 异常处理的回调函数) 在then方法中传递两个回调函数...如果接口在5秒之前接口返回了,那么我们可以正常的得到返回结果,如果5秒还没有返回,那么请求就没有办法把结果返回回来了,因为timeout这个Promise会在5秒后以失败的方式结束,而Promise.race

    66370

    ES6中的Promise和Generator详解

    那个率先改变的 Promise 实例的返回值,就传递给p的回调函数. Promise.resolve() Promise.resolve()将现有对象转为Promise对象....next方法的运行逻辑如下: (1)遇到yield语句,就暂停执行后面的操作,并将紧跟在yield后面的那个表达式的值,作为返回的对象的value属性值。...(3)如果没有再遇到新的yield语句,就一直运行到函数结束,直到return语句为止,并将return语句后面的表达式的值,作为返回的对象的value属性值。...我们就以两个参数为例。 一般来说,我们这样调用: fs.readFile(fileA,callback); 那么有没有办法将其改写成为单个参数的function的级联调用呢?...但是有没有自动执行的办法呢?

    1.2K21

    《深入浅出Node.js》:Node异步编程解决方案 之 ES6 Promise

    resolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject函数的作用是...,将Promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。...然后,then方法指定的回调函数,将在当前脚本所有同步任务执行完才会执行,所以resolved最后输出。 then方法可以接受两个回调函数作为参数。...这两个函数都接受Promise对象传出的值作为参数。...上面两个示例大概的展现了Promise对象的用法。下面来分别看下Promise对象的API。 ES6规定Promise对象是作为构造函数来使用的(虽然都知道js中其实没有类,而只是基于原型的。

    90030

    ajax 使用 与 缓存问题

    ,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行中的资源路径后面。...Post方式: 当使用POST方式时,浏览器把各表单字段元素及其数据作为HTTP消息的实体内容发送给Web服务器,而不是作为URL地址的参数进行传递,使用POST方式传递的数据量要比使用GET方式传送的数据量大的多...utf-8,如果服务器端是gb2312或其他编码数据就会产生乱码   解决办法有:   1、若客户端是gb2312编码,则在服务器指定输出流编码   2、服务器端和客户端都使用utf-8编码   gb2312...$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。...如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值: "xml": 返回 XML 文档,可用 jQuery

    2.3K20

    ES6之Promise

    回调地狱,代码难以维护, 常常第一个的函数的输出是第二个函数的输入这种现象promise可以支持多个并发的请求,获取并发请求中的数据这个promise可以解决异步的问题,本身不能说promise是异步的...- 处理结果正常的话,调用resolve(处理结果值),将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去...,作为参数传递出去 - Promise存在三种状态,一旦确定状态是无法修改的。...参数传递promise数组中所有的 Promise 对象都变为resolve的时候,该方法才会返回, 新创建的 Promise 则会使用这些 promise 的值。 6....Promise.race() > 参数 promise 数组中的任何一个 Promise 对象如果变为 resolve 或者 reject 的话, 该函数就会返回,并使用这个 Promise

    73720

    JavaScript回调函数

    回调函数也被叫做高阶函数,所谓高阶函数是指函数作为参数被传递或者函数作为返回值输出,简单点说就是操作函数的函数叫做高阶函数。...我们把一段可执行的代码(一个函数)作为参数传递给其他的代码(另一个函数),并在需要的时候方便调用这个可执行代码(回调函数)。...这样解释感觉有点拗口,简单说就是把一个函数当做参数传递给另外的函数,然后在这个函数内部执行这个参数的函数。回调函数有两种,一种是函数回调,一种是匿名函数回调。...,函数会直接输出,所以回调函数有个特点就是不会立即执行,一般是在需要执行的时候去调用,才会执行。...10,当我们把这个方法当做参数传递给con方法之后,调用callback的是window,this指向window,所以输出的是100。

    1.6K20

    前端面试ajax考点汇总_javascript常见面试题

    XMLHttpRequest对象的responseXMl属性 9、 XMLHttpRequest对象在IE和Firefox中创建方式有没有不同。...dom解析是一次性读取xml文件并将其构造为DOM对象供程序使用,优点是操作方便,但是比较耗内存。...举例(jsonp): 动态的创建script标签,通过标签引入一个js文件,这个文件载入成功后会执行我们在url参数中指定的函数,并把我们需要的json数据作为参数传入。...,参数就是服务器返回的数据,为了处理这些返回的数据,需要事先在页面定义好回调函数,本质上使用的并不是ajax技术。...对于ajax请求传递的参数,如果是get请求方式,参数如果传递中文,在有些浏览器会乱码,不同的浏览器对参数编码的处理方式不同,所以对于get请求的参数需要使用encodeURIComponent函数对参数进行编码处理

    4.7K30

    CVE-2022-21661:通过 WORDPRESS SQL 注入暴露数据库信息

    首先,这是一个演示该漏洞的快速视频: 漏洞 该漏洞发生在 WordPress Query ( WP_Query ) 类中。WP_Query对象用于对 WordPress 数据库执行自定义查询。...插件和主题使用此对象来创建他们的自定义帖子显示。  当插件使用易受攻击的类时,就会出现该漏洞。一个这样的插件是Elementor Custom Skin 。...在这个插件中,易受攻击的WP_Query类在ajax-pagination.php的get_document_data方法中被利用: public function get_document_data...稍后在 SQL 语句中使用terms参数的值。...图 5 - wordpress/wp-includes/class-wp-tax-query.php 请注意,get_sql()返回的sql变量附加到 SQL SELECT 语句并使用从该方法返回的字符串进行组装

    4.4K10

    javascript异步中的回调

    没错这就是我们今天要说的---回调 js回调函数 如你所知,函数是对象,所以可以存储在变量中, 所以函数还有以下身份: 可以作为函数的参数 可以在函数中创建 可以在函数中返回 当一个函数a以一个函数作为参数或者以一个函数作为返回值时...如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。...维基百科 在计算机程序设计中,回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其它代码的,某一块可执行代码的引用。...所以最简单的办法就是使用回调函数解决这种问题,gj函数依赖于hr函数的执行结果,所以我们把gj作为hr的一个回调函数 let girlName = "裘千尺" function...,重点看输出顺序 //=>我是黄蓉 //=>黄蓉你好,我是郭靖,认识一下吧 ⚠️:当回调函数作为参数时,不要带后面的括号!

    2.1K40

    科普系列——如何解释什么是 AJAX?

    在上述例子中,核心是班长(也就是HXR对象),班主任可以通过他传递消息(客户端构建XHR对象发送请求)然后收到响应。在班长去通知小明的过程中,班主任仍然可以继续手头的工作,这就是一个异步的过程。...() { //设置请求路径 var url = "XXXXXX"; // 发送请求:将数据返回到一个回到函数中 // 并且响应成功以后会执行then方法中的回调函数...事实上,这已经不是在AJAX的讨论范围了,但是作为一个拓展知识点,我还是想介绍下状态码这个东西。状态码的作用是服务器返回给客户端的用来描述HTTP请求的状态的。...获取网页中的XHR请求 这时就有人可能会问了,有没有什么办法可以获取一个网页中的XHR请求呢?当然是有的,这一过程其实说的宽泛点其实就是抓包,这里我以掘金为例,介绍下获取网页中的XHR请求。...XHR 很实用,但并不是一个设计优良的 API,在设计上并不符合职责分离原则,输入、输出以及状态都杂糅在同一对象中,并用事件机制来跟踪状态变化。

    87120
    领券