Promise题目】的更多相关文章

setTimeout(function () { console.log(1); }, 0) new Promise(function executor(resolve) { console.log(2); for (var i = 0; i < 1000; i++) { i = 9999 && resolve(); } console.log(3); }).then(function () { console.log(4); }) console.log(5); 输出结果:2 3…
JS的ES6已经出来很久了,作为前端工程师如果对此还不熟悉有点说不过去.不过如果要问,Promise原生的api一共有哪几个?好像真的可以难倒一票人,包括我自己也忽略了其中一个不常用的API Promise.race.我们来瞧一下MDN对Promise的讲解: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise 来看一下Promise的方法和prototype列表: [1…
解答这个题目之前,先回顾下JavaScript的事件循环(Event Loop). JavaScript的事件循环 事件循环(Event Loop):同步和异步任务分别进入不同的执行"场所",同步的进入主线程,异步的进入Event Table并注册函数.当指定的事情完成时,Event Table会将这个函数移入Event Queue.主线程内的任务执行完毕为空,会去Event Queue读取对应的函数,进入主线程执行.上述过程会不断重复,也就是常说的Event Loop(事件循环).流…
题目:红灯三秒亮一次,绿灯一秒亮一次,黄灯2秒亮一次:如何让三个灯不断交替重复亮灯?(用Promse实现) 三个亮灯函数已经存在: function red(){ console.log('red'); } function green(){ console.log('green'); } function yellow(){ console.log('yellow'); } 这道题首先考察Promise的应用,Promise的详细说明请看我的这篇文章:闲话Promise机制.首先我们需要一个函…
因为前几天做了一个promise对象捕获错误的面试题目,所以这几天又重温了一下promise对象.现在借这道题来分享下一些很基础的知识点. 下面是一个面试题目,三个promise对象捕获错误的例子,返回结果有什么不同. //使用throw添加错误事件 var p = new Promise(function(resolve, reject) { resolve("ok"); throw new Error('error0'); //setTimeout(function() { thr…
题目:红灯三秒亮一次,绿灯一秒亮一次,黄灯2秒亮一次:如何让三个灯不断交替重复亮灯?(用Promise实现) 解答思路一: function red(){ console.log('red'); } function green(){ console.log('green'); } function yellow(){ console.log('yellow'); } var tic = function(timmer, cb){ return new Promise(function(reso…
Promise对象被写进ES6的规范当中,提供的是另外一种更加友好的对于异步编程的解决方案,在这之前大多使用的是回调函数和事件来实现异步编程. 怎么来理解Promise对象呢?对于这个ES6新加入的小伙伴,首先是它一个和其他诸如Array,Date,Math,Global等对象一样的东西,只不过Promise可以作为异步编程的一种解决方案,至于是不是最好的异步编程解决方案,这个以后再讨论.        正因为是为了解决异步编程,相应的,Promise对象是有状态的,事儿是办好了还是办不好,总要…
首先我们来看一道题目,如下javascript代码,执行后会在控制台打印出什么内容? async function async1() { console.log('async1 start'); await async2(); console.log('async1 end'); } async function async2() { console.log('async2 start'); return new Promise((resolve, reject) => { resolve();…
同步 vs 异步 先看下面的 demo,根据程序阅读起来表达的意思,应该是先打印100,1秒钟之后打印200,最后打印300.但是实际运行根本不是那么回事 console.log(100) setTimeout(function () { console.log(200) }, 1000) console.log(300) 再对比以下程序.先打印100,再弹出200(等待用户确认),最后打印300.这个运行效果就符合预期要求. console.log(100) alert(200) // 1秒钟…
核心点promise在生命周期内有三种状态,分别是pending,fulfilled或rejected,状体改变只能是 pending-fulfilled,或者pending-rejected.而且状态一旦改变就不能再次改变. 题1 promise.resolve() .then(() => { console.log('a'); return new Error('error'); }) .then((res)=>{ console.log('b'); console.log('then:'…
看到过下面这样一道题: (function test() { setTimeout(function() {console.log(4)}, 0); new Promise(function executor(resolve) { console.log(1); for( var i=0 ; i<10000 ; i++ ) { i == 9999 && resolve(); } console.log(2); }).then(function() { console.log(5);…
在前端开发参加面试的时候,无论是校招还是社招,往往都会碰到让我们直接在白纸或者白板上手撸代码的题目.由于是手撸代码,这些题目肯定不会过于复杂和冗长,否则面试那么一小会时间根本写不完.本文总结了几个我本人在面试中碰到的小问题,暂且记录下来以供后人参考吧. 1. 实现throttle函数. throttle函数即节流函数,在underscore和lodash这两个库中都有对应的实现.其实现的效果就是在给定的时间间隔内,函数最多只能执行1次.例如有函数A,设定其时间间隔为10s,如果在第0秒的时候已经…
1.题目和答案 一道题题目:下面这段promise.async和await代码,请问控制台打印的顺序? async function async1(){ console.log('async1 start') await async2() console.log('async1 end') } async function async2(){ console.log('async2') } console.log('script start') setTimeout(function(){ co…
Promise 想必大家都十分熟悉,想想就那么几个 api,可是你真的了解 Promise 吗?本文根据 Promise 的一些知识点总结了十道题,看看你能做对几道. 以下 promise 均指代 Promise 实例,环境是 Node.js. 题目一 1 2 3 4 5 6 7 8 9 const promise = new Promise((resolve, reject) => { console.log(1) resolve() console.log(2) }) promise.the…
你能答对几题? 题目一 const promise = new Promise((resolve, reject) => { console.log(1) resolve() console.log(2) }) promise.then(() => { console.log(3) }) console.log(4) 题目二 const promise1 = new Promise((resolve, reject) => { setTimeout(() => { resolve(…
今天做了阿里前端的笔试题目,原题目是这样的 //实现mergePromise函数,把传进去的数组顺序先后执行,//并且把返回的数据先后放到数组data中 const timeout = ms => new Promise((resolve, reject) => {setTimeout(() => {resolve();}, ms);}); const ajax1 = () => timeout(2000).then(() => {console.log('1');retur…
题目一 const promise = new Promise((resolve, reject) => { console.log(1); resolve(); console.log(2); }) promise.then(() => { console.log(3); }) console.log(4); 解析 首先Promise新建后立即执行,所以会先输出1,2,而Promise.then()内部的代码在当次事件循环的结尾立即执行,所以会先输出4,最后输出3. 答案:1  2  4 …
为啥要说 promise ? 因为这是前端必须要掌握的一个知识,吹逼必备 首先说说 Promise 是什么? Promise 是JavaScript的第一个异步标准模型,一个包含传递信息与状态的对象,emmm...它的英语意思是承诺. so 它拥有的特点也有承诺的意思(兄弟们,拿好笔记本,划重点): 对象的状态不受外界影响,Promise 表示一个异步的操作,它有三个状态 Pending (进行时).Reslove (已完成).Rejected (失败),只有异步操作的结果,可以决定当前是哪一种…
导读 Promise问世已久, 其科普类文章亦不计其数. 遂本篇初衷不为科普, 只为能够温故而知新. 比如说, catch能捕获所有的错误吗? 为什么有些时候会抛出"Uncaught (in promise) -"? Promise.resolve 和 Promise.reject 处理Promise对象时又有什么不一样的地方? Promise 引子 阅读此篇之前, 我们先体验一下如下代码: setTimeout(function() {   console.log(4) }, 0);…
在写javascript时我们往往离不开异步操作,过去我们往往通过回调函数多层嵌套来解决后一个异步操作依赖前一个异步操作,然后为了解决回调地域的痛点,出现了一些解决方案比如事件订阅/发布的.事件监听的方式,再后来出现了Promise.Generator.async/await等的异步解决方案.co模块使用了Promise自动执行Generator,async/await这个Node7.6开始默认支持的最新解决方案也是依赖于Promise,所以了解Promise是非常有必要的,而理解它背后的实现原…
作者:王下邀月熊链接:https://zhuanlan.zhihu.com/p/24856035来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本文有一定概率为水文,怕湿身者勿看. React 常用面试题目与分析翻译自React Interview Questions,从属于笔者的Web 前端入门与工程实践,更多前端思考借鉴2016-我的前端之路:工具化与工程化 调用 setState 之后发生了什么? 在代码中调用setState函数之后,React 会将传入的…
先来一道关于async/await.promise和setTimeout的执行顺序的题目: async function async1() { console.log('async1 start'); await async2(); console.log('asnyc1 end'); } async function async2() { console.log('async2'); } console.log('script start'); setTimeout(() => { conso…
最近在看<Node.js调试指南>的时候遇到有意思的几道题,是关于setTimeout, promise.then, process.nextTick, setImmediate的执行顺序.今天抽空记录下这道题的分析过程及背后的原理与知识点. 题目如下: // 题目一: setTimeout(()=>{ console.log('setTimeout') },0) setImmediate(()=>{ console.log('setImmediate') }) // 题目二: c…
来看看通过阅读本篇文章要点: Promise的几道基础题 Promise结合setTimeout Promise中的then.catch.finally Promise中的all和race async/await的几道题 async处理错误 综合题 几道大厂的面试题 前期准备 在做下面的题目之前,我希望你能清楚几个知识点. (如果你感觉一上来不想看这些列举的知识点的话,直接看后面的例子再来理解它们也可以) event loop它的执行顺序: 一开始整个脚本作为一个宏任务执行 执行过程中同步代码直…
关注「松宝写代码」,精选好文,每日一题 加入我们一起学习,day day up 作者:saucxs | songEagle 来源:原创 一.前言 2020.12.23日刚立的flag,每日一题,题目类型不限制,可以是:算法题,面试题,阐述题等等. 往期「每日一题」: 第2道「[每日一题]ES6中为什么要使用Symbol?」(https://mp.weixin.qq.com/s/omeVJdtabo5MeN3DItDfWg) 第1道「一道面试题是如何引发深层次的灵魂拷问?」(https://mp.…
目录 深入探究JavaScript的Event Loop Event Loop的结构 回调队列(callbacks queue)的分类 Event Loop的执行顺序 通过题目来深入 深入探究JavaScript的Event Loop Javascript是一门单线程语言 但是在运行时难免会遇到需要较长执行时间的任务如: 向后端服务器发送请求. 其他的任务不可能都等它执行完才执行的(同步)否则效率太低了, 于是异步的概念就此产生: 当遇到需要较长时间的任务时将其放入"某个地方"后继续执…
壹 ❀ 引 就在昨天,与朋友聊到JS基础时,她突然想起之前在面试时,遇到了一道难以理解的Promise执行顺序题.由于我之前专门写过手写promise的文章,对于部分原理也还算了解,出于兴趣我便要了这道题的代码,想看看自己现在的理解能做到什么程度,顺便也给对方解疑答惑,代码如下: function doSomething() { return Promise.resolve(1); }; function doSomethingElse() { return Promise.resolve(2)…
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS 属性,赶紧去补习一下吧. 不断更新,不断更新,不断更新,重要的事情说三遍. 谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少 谈谈一些有趣…
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS 属性,赶紧去补习一下吧. 不断更新,不断更新,不断更新,重要的事情说三遍. 谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少 谈谈一些有趣…
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS 属性,赶紧去补习一下吧. 不断更新,不断更新,不断更新,重要的事情说三遍. 谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型 所有题目汇总在我的 Github . 3.层叠顺序(stacking level)与堆…