JavaScript引擎(V8,SpiderMonkey)是单线程的,在ES6之前,在JavaScript中没有运行异步代码的机制,直到ES6引入了承诺概念。我理解在承诺到来之前,浏览器或Node (服务器端JS)用来提供使用setTimeout and Process.nextTick异步运行代码的机制,而且由于承诺在Javascript中被支持运行异步代码,所以我试图了解<em
如果promise创建了一个新的微任务回调,并且所有微任务在处理下一个宏任务之前都已解决,为什么promise不阻止事件循环?这是一个答案,解释承诺就像一个事件通知系统,显然这是真的,因为承诺不会阻止,这就是重点: Do Javascript promises block the stack 但要清楚的是,如果回调被添加到微队列,并且该队列必须清空才能继续执行下一个宏任务,为什么它不阻塞呢?
我对JavaScript的web还有点陌生,所以我仍然对异步函数的流程很感兴趣,这对不熟悉的人来说可能有点出乎意料。在我的特定用例中,我希望在进入主代码之前在可用数据库列表上执行一个例程。err, dbs){/*Loop through DBs and drop relevant one if present.*/});通过在整个过程中添加一些实际上,在输入传递给listDatabas