Vue nextTick原理回顾

embedded/2025/2/28 10:17:26/

nextTick就是将异步函数放在下一次实践循环的微任务队列中执行

  • 实现原理比较简单,极简版本:
function myNextTick(cb){let p;p=Promise.resolve().then(cb)return cb?p:Promise.resolve()
}
  • 复杂版本,考虑异步函数入队、执行锁、兼容处理
let callbackArr=[]
let pendding=falsefunction executeAsyncTask(){//该执行promise.then了表示pendding=falsefor(let i=0;i<callbackArr.length;i++){callbackArr[i]()}
}function myNextTick(cb){callbackArr.push(cb)if(!pendding){pendding=truePromise.resolve().then(executeAsyncTask)}if(!cb){return Promise.resolve()}
}

http://www.ppmy.cn/embedded/167779.html

相关文章

Ubuntu 20.04 安装 Node.js 20.x、npm、cnpm 和 pnpm 完整指南

&#x1f310; Ubuntu 20.04 安装 Node.js 20.x、npm、cnpm 和 pnpm 完整指南 &#x1f680; 在本文中&#xff0c;我们将介绍如何在 Ubuntu 20.04 上安装 Node.js 20.x&#xff0c;以及如何安装 npm、cnpm 和 pnpm 来提高开发效率 ⚡。 1️⃣ 安装 Node.js 20.x 为了确保使用…

Vue组件间通信的方式

组件间通信的分类&#xff1a; 父子组件之间的通信兄弟组件之间的通信祖孙与后代组件之间的通信非关系组件间之间的通信 组件间通信的方案&#xff1a; 通过 props 传递通过 $emit 触发自定义事件使用 refEventBus通过 $parent 或 $rootattrs 与listenersProvide 与 InjectV…

机器人学习模拟框架 robosuite 支持强化学习和模仿学习 (1) 快速入门

RoboSuite 是一款基于MuJoCo物理引擎构建的机器人学习模拟框架。 在现有版本&#xff08;v1.5&#xff09;中&#xff0c;它涵盖了丰富多样的机器人实例支持&#xff0c;诸如人形机器人、自定义机器人组合&#xff0c;还包含复合控制器&#xff08;像全身控制器等&#xff09;…

大语言加持的闭环端到端自动驾驶模型 学习笔记纯干货

LMDrive&#xff1a;大语言模型辅助闭环端到端 LMDrive&#xff1a;大语言模型辅助闭环端到端 背景框架输入部分&#xff1a;导航指令&#xff1a;视觉数据&#xff1a;提示指令&#xff08;可选&#xff09;&#xff1a;处理部分&#xff1a;输出部分&#xff1a; 视觉编码器…

leetcode 169. 多数元素

题目如下 显然当多数元素存在时我们可以先排序此时多数元素就组成了一个长度超过一半的"滑动窗口"。 那么无论我们怎么样滑动这个窗口显然数组的中心点必然落在这个窗口内&#xff0c;即排序后的中间元素就是多数元素。法一代码 class Solution { public:int majo…

基于多层感知机(MLP)实现MNIST手写体识别

实现步骤 下载数据集处理好数据集确定好模型&#xff08;初始化模型参数等等&#xff09;确定优化函数&#xff08;损失函数也称为目标函数&#xff09;和优化方法&#xff08;一般选用随机梯度下降 SDG &#xff09;进行模型的训练进行模型的评估 import torch import torch…

钉钉小程序(企业内部应用)开发下载预览文件

先转存钉盘&#xff0c;在下载 转存钉盘相关API为dd.saveFileToDingTalk调用钉盘预览文件的接口来预览:相关API为dd.previewFileInDingTalk在预览界面有下载的方式&#xff0c;可以直接下载 goPDF() {dd.saveFileToDingTalk({url: http://elinkshop.oss-cn-shanghai.ali…

学习Flask:[特殊字符] Day 4:REST API开发

学习目标&#xff1a;构建规范的API接口 from flask_restful import Api, Resourceapi Api(app)class PostAPI(Resource):def get(self, post_id):post Post.query.get_or_404(post_id)return {title: post.title,author: post.author.username}api.add_resource(PostAPI, /…