异步
文章平均质量分 63
quitv
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Promise 核心
1.起步构建首先声明定义类并声明Promise状态与值executor为执行者当执行者出现异常时触发拒绝状态使用静态属性保存状态值状态只能改变一次,所以在resolve与reject添加条件判断因为 resolve或rejected方法在executor中调用,作用域也是executor作用域,这会造成this指向window,现在我们使用的是class定义,this为undefined。class HD { static PENDING = "pending"; static F转载 2021-07-16 11:08:39 · 165 阅读 · 0 评论 -
js任务管理
任务管理javascript 语言最大的特点就是使用单线程,也就是同一个时间只能处理同一个任务。为了协调事件、用户交互、脚本、UI 渲染、和网络处理等行为,防止主线程的不阻塞,(事件循环)Event Loop的方案应用而生。javaScript 处理任务就是在等待任务 、执行任务、休眠等待新任务中不断循环中,也称这种机制为事件循环。主线程中的任务执行完后,才执行任务队列中的任务有新任务到来时会将其放入队列,采取先进先执行的策略执行队列中的任务比如多个 setTimeout 同时到时间了,就要..原创 2021-07-15 13:37:09 · 241 阅读 · 0 评论 -
Promise任务队列,async/await
**1.实现原理**如果 then 返回promise 时,后面的then 就是对返回的 promise 的处理下面使用 map 构建的队列,有以下几点需要说明1.then 内部返回的 promise 更改外部的 promise 变量2.为了让任务继承,执行完任务需要将 promise 状态修改为 fulfilledfunction queue(nums) { let promise = Promise.resolve(); nums.map(n => { promise =原创 2021-07-15 11:26:52 · 461 阅读 · 0 评论 -
Promise链式操作、扩展接口(resolve,reject,all,allSettled,race))
链式操作1.每个then都是一个promise2.如果then返回promise,只当promise结束后,才会继续执行下一个then1.1 语法介绍then 会返回一个promise ,所以如果有多个then 时会连续执行then 返回的值会做为当前promise 的结果下面是链式操作的 then,即始没有 return 也是会执行,因为每个then 会返回promise,没有return的时候最后的打印结果为undefined-houdunren。new Promise((resolve,原创 2021-07-15 10:44:11 · 758 阅读 · 0 评论 -
promise 实列操作
使用肯德基点餐的列子1.使用以往的回调方式,就会让人苦不堪言function notice(msg, then) { then(msg);}function meal() { notice("肯德基厨房开始做饭", msg => { console.log(msg); notice("我是肯德基,你的餐已经做好", msg => { console.log(`收到肯德基消息: ${msg}`); setTimeout(() => {原创 2021-07-14 15:28:57 · 161 阅读 · 0 评论 -
Promise
JavaScript 中存在很多异步操作,Promise 将异步操作队列化,按照期望的顺序执行,返回符合预期的结果。可以通过链式调用多个 Promise 达到我们的目的。1.异步状态Promise包含*pending、fulfilled、rejected三种状态。pending 指初始等待状态,初始化 promise 时的状态resolve 指已经解决,将 promise 状态设置为fulfilled***reject 指拒绝处理,将 promise 状态设置为rejectedpromise 是原创 2021-07-14 15:03:15 · 113 阅读 · 0 评论 -
异步操作的流程控制
如果有多个异步操作,就存在一个流程控制的问题:如何确定异步操作执行的顺序,以及如何保证遵守这种顺序。串行执行:一个任务完成以后,再执行另一个。编写一个流程控制函数,让它来控制异步任务。// An highlighted blockvar items = [ 1, 2, 3, 4, 5, 6 ];var results = [];function async(arg, callback) { console.log('参数为 ' + arg +' , 1秒后返回结果'); setTi.原创 2021-02-11 14:24:33 · 426 阅读 · 1 评论
分享