首页 > 其他分享 >【JS错误总结】promise.then 如果没有被 resolve,不会立即执行,而是先执行宏任务,等待 promise resolve后才会执行

【JS错误总结】promise.then 如果没有被 resolve,不会立即执行,而是先执行宏任务,等待 promise resolve后才会执行

时间:2023-07-03 19:55:38浏览次数:52  
标签:resolve console log setTimeout promise 执行

setTimeout(() => {
    console.log('setTimeout')
}, 0)

let promise = new Promise((resolve, reject) => {

    console.log('1')

    setTimeout(() =>{ 
        console.log('timeStart')
        resolve('success')
        console.log('timeEnd')
    }, 0)

    console.log('2')
})

promise.then((res) => {
    console.log(res)
})

// 1 2 setTimeout timeStart timeEnd success
// 注意: 最后这个 promise.then 微任务没有立即执行,而是等待宏任务执行完,把 promise resolve 之后才会执行

 

标签:resolve,console,log,setTimeout,promise,执行
From: https://www.cnblogs.com/zjy4fun/p/17523834.html

相关文章

  • 如何在JavaScript中使用Promise.allSettled()
    您是否曾经在JavaScript中使用过Promise,并且当有人拒绝并毁掉一切时感到沮丧?你编写了一些基于Promise的代码,一切都进展顺利,然后繁荣——一个小小的Promise被拒绝,整个链条就会崩溃。你的代码逐渐停止,你想知道为什么JavaScript不能忽略这个小问题并继续它的快乐之路。好......
  • Android开发_开启子线程执行耗时操作
    Activityactivity=(Activity)getContext();newThread(newRunnable(){@Overridepublicvoidrun(){activity.runOnUiThread(newRunnable(){@Overridepublicvoidrun(){//在这执行耗时操作......
  • BackUpLogView 系列 - Powershell 在任务计划中执行脚本
     在windows系统中,使用powershell执行脚本,请在写字板中调整相关参数,注意把参数一次性拷贝完整。之所以选择带参数的原因,是避免powershell打开时出现安全性限制对话框导致执行失败powershell.exe-NonInteractive-NoProfile-NoLogo-ExecutionPolicyUnrestricted-File......
  • Linux|常用命令|SSH远程执行Shell
    #bash/python命令语法#ssh语法同bash/python不同,避免混淆bashscript.shparams4scriptpythonscript.pyparams4scriptbash-c""bash-c''python-c''python-c""一行和多行只是写法不同打包成函数和文件没有本质区别注意Shell会解释输入,转译字符、变量生效推......
  • Pycharm执行allure命令报错:allure 不是内部或外部命令,也不是可运行的程序 - 实测有效
    Pycharm执行allure命令报错:allure不是内部或外部命令,也不是可运行的程序现象:1、在doc中正常执行allure命令,只有在pycharm中无法执行2、在pycharm中打印os.environ,没有allureenv_dist=os.environforkeyinenv_dist:if'allure'inenv_dist[key]:print(k......
  • Android:倒计时、定时器、定时执行次数使用笔记
    原文:https://blog.csdn.net/weixin_40420578/article/details/103876900一.倒计时(3、2、1)CountDownTimer() //一共3秒,每隔1秒执行一次 CountDownTimertimer=newCountDownTimer(3000,1000){ @Override publicvoidonTick(longmillisUntilFi......
  • 自定义MultipleViewResolver
    1.MultipleViewResolver.javaimportjava.util.Locale;importjava.util.Map;importorg.springframework.web.servlet.View;importorg.springframework.web.servlet.ViewResolver;publicclassMultipleViewResolverimplementsViewResolver{privateMap<St......
  • SpringMVC的执行流程
    SpringMVC的执行流程要求掌握SpringMVC的执行流程了解SpringMVC的重要组件的作用概要我把整个流程分成三个阶段准备阶段匹配阶段执行阶段准备阶段在Web容器第一次用到DispatcherServlet的时候,会创建其对象并执行init方法init方法内会创建SpringWeb......
  • Web前端在浏览器如何启动本地可执行文件
    方法2本地监听法可以自己开发一个小的可执行程序,监听前端发的web请求。收到请求后,我们自己编写的可执行程序启动本地的可执行文件即可。想要启动本地可执行文件的关键就是本地有一个小服务端,我们通过本地网络与服务端通信,服务端负责启动可执行文件。这种方法对于任何浏览器都兼......
  • 使用 ABAP 正则表达式提高字符串解析的执行效率
    在ABAP(AdvancedBusinessApplicationProgramming)中,正则表达式(RegularExpressions)是一种强大的工具,可用于处理字符串和文本数据。正则表达式可以帮助您执行各种任务,如查找和替换文本、验证输入格式或拆分字符串。本文将介绍在ABAP中使用正则表达式的几种方法。使用CL_ABAP......