js中await能否阻塞线程?

await能否阻塞线程,或者说Promise是否能阻塞线程(长时间不resolve和reject),是否和confirm框一样?想用await promise实现一个自定义的confirm组件来达到阻塞线程,等待用户点击确定的组件,是否可行?

阅读 6.1k
3 个回答

await只会阻塞当前函数内的处理逻辑,并不能阻塞浏览器,等同于promise.then,无法做到confirm框一样的效果

并不阻塞。await / async 只是个语法糖,让你代码写起来跟同步代码一样,但本质上它还是异步的。

并不阻塞,无法实现类似于 alert 之类的功能。

因为他只是把你当前执行的放入回调中了如果还有其他微任务和宏任务是无法阻塞的

alert、同步ajax 他们直接挂起进程了。其他任务队列的任务也不会执行,需要等待。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题