promise

promise resolve(解析)和 reject(拒绝)

Promise 是异步编程的一种解决方案,将异步操作以同步操作的流程表达出来,避免了层层

嵌套的回调函数,要是为了解决异步处理回调地狱(也就是循环嵌套的问题)而产生的

Promise 有几种状态

三个状态:pending、fulfilled、reject

两个过程:padding -> fulfilled、padding -> rejected

Promise 什么时候会进入 catch

当 pending 为 rejectd 时,会进入 catch

setTimeout、Promise、Async/Await 的区别

事件循环中分为宏任务队列和微任务队列

宏任务(macrotask):在新标准中叫 task

主要包括:script(整体代码),setTimeout,setInterval,setImmediate,I/O,ui rendering

微任务(microtask):在新标准中叫 jobs

主要包括:process.nextTick, Promise,MutationObserver(html5 新特性)

setTimeout、Promise、Async/Await 的区别

setTimeout 的回调函数放到宏任务队列里,等到执行栈清空以后执行

Promise.then 里的回调函数会放到相应宏任务的微任务队列里,等宏任务里面的同步代码执

行完再执行

async 函数表示函数里面可能会有异步方法,await 后面跟一个表达式

async 方法执行时,遇到 await 会立即执行表达式,然后把表达式后面的代码放到微任务队

列里,让出执行栈让同步代码先执行

手写一个 Promise

var Promise = new Promise ((resolve, reject) => {

                        if (操作成功) {

                        resolve(value)

                        }  else  {

                            reject(error)

                                     }

                        })

Promise.then ( function (value) {

                        // success

                        }, function (value) {

                        // failure

                        })

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容