首页 > 编程语言 > 请问以下JS代码在Node环境下的输出顺序是?

请问以下JS代码在Node环境下的输出顺序是?

时间:2023-11-10 16:46:19浏览次数:46  
标签:Node nextTick 顺序 console log process JS promise

请问以下JS代码在Node环境下的输出顺序是?

Promise.resolve()
.then(() => {
  console.log('p1');
})
.then(() => {
  console.log('p2');
})
process.nextTick(() => {
  console.log('n1');
  process.nextTick(() => {
    console.log('n2');
  })
})

n1、n2、p1、p2

注意虽然两者都属于微任务,但是只要它不是process.nextTick派发的,全部都要排队在process.nextTick后面执行。

Node 中的“微任务(microtasks)其实是一个统称,包含了两部分:

process.nextTick() 注册的回调 (nextTick task queue)
promise.then() 注册的回调 (promise task queue)

Node 在执行微任务时, 会优先执行 nextTick task queue 中的任务,执行完之后会接着执行 promise task queue 中的任务。
所以如果 process.nextTick 的回调与 promise.then 的回调都处于主线程或事件循环中的同一阶段, process.nextTick 的回调要优先于 promise.then 的回调执行。

https://www.cnblogs.com/forcheng/p/12723854.html

标签:Node,nextTick,顺序,console,log,process,JS,promise
From: https://www.cnblogs.com/longmo666/p/17824445.html

相关文章

  • 深入探讨Vue.js核心技术及uni-app跨平台开发实践
    Vue.js是一款流行的JavaScript框架,用于构建交互性强、响应式的用户界面。而uni-app是一个基于Vue.js的跨平台应用开发框架,允许开发者使用Vue.js的语法编写一次代码,然后将其部署到多个平台,如iOS、Android、Web等。本文将深入探讨Vue.js的核心技术,并介绍如何利用uni-app进行跨平台实......
  • vue-cli-service vue.config.js配置 productionSourceMap与webpack中的devtool 关联详
    https://webpack.js.org/configuration/devtool/https://cli.vuejs.org/zh/config/#productionsourcemap https://github.com/vuejs/vue-cli/blob/f0f254e4bc81ed322eeb9f7de346e987e845068e/packages/%40vue/cli-service/lib/config/prod.js#L7 可以在源码中看到if(pro......
  • 请问以下JS代码的输出是? 935、 ['read', 'write']
    functionfather(){this.num=935;this.work=['read','write','listen'];}functionson(){}son.prototype=newfather();letson1=newson();letson2=newson();son1.num=117;son1.work.pop();console.log(son2.......
  • node 栈溢出 解决办法
    启动项目时报错解决办法:在package.json里面找到启动项目命令,加上NODE_OPTIONS=\"--max-old-space-size=4096\"即可"scripts":{"serve":"NODE_OPTIONS=\"--max-old-space-size=4096\"vue-cli-serviceserve--modedevelopment",......
  • mac 升级、切换node版本
    mac可以使用node.js多版本管理器n来帮助升级以及切换node版本具体命令:2、sudonpminstall-gn//使用npm安装n模块3、npmviewnodeversions//查看node所有版本4、sudonlatest//升级到最新版本sudonstable//升级到稳定版本sudonxx.xx//安装到具体版本......
  • 数据结构入门 — 顺序表详解
    前言数据结构入门—顺序表详解关注博主,后期持续更新系列文章文章末尾有源码*****感谢观看,希望对你有所帮助*****文章目录前言一、顺序表1.顺序表是什么2.优缺点二、概念及结构1.静态顺序表2.动态顺序表三、顺序表接口实现(代码演示)1.动态存储结构2.顺序表打印3.顺序表初......
  • 【RuoYi移动端】HBuild工具插件安装和系统配置manifest.json
    一、点【工具】-【插件安装】安装如下工具  二、点【manifest.json】......
  • Node opensslErrorStack 错误解决方法记录
    从Git仓库中下载了一个老项目,使用npminstall安装后没有问题,当我使用npmrundev的时候遇到了OpenSSL相关错误,例如opensslErrorStack:['error:03000086:digitalenveloperoutines::initializationerror']网上找了一下相关信息,然后顺利解决了,记录分享给大家问题原因:这种错......
  • nvm的安装及Node.js环境配置
    一、nvm是什么? nvm是一个node的版本管理工具,可以简单操作node版本的切换、安装、查看、等等二、nvm的安装1.windows包下载地址: 下载nvm安装包,下载地址:https://github.com/coreybutler/nvm-windows/releases2.双击安装文件nvm-setup.exe文件进行安装:(1)安装 (注意这里:默......
  • brew安装nvm、node及配置
    用brew安装nvmbrewinstallnvm创建nvm的工作目录mkdir~/.nvm配置环境变量vim~/.bash_profile##添加配置exportNVM_DIR="$HOME/.nvm"[-s"/opt/homebrew/opt/nvm/nvm.sh"]&&\."/opt/homebrew/opt/nvm/nvm.sh"#Thisloadsnvm......