我理解的是:下面的代码会先打印123456,然后执行myfunc1函数的计算步骤,最后等待执行完毕后打印my func1。理论上主线程会先将myfunc1加入到 Promise 队列中,然后直接执行console.log(123456),最后再逐步清空任务队列、即执行myfunc1函数内 Promise 中的计算步骤。
而实际上是:先执行myfunc1函数的计算步骤,执行完毕后打印123456,最后再打印my func1。
哪里没理解对呢?
function myfunc1(){
return new Promise((resolve,rejects)=>{
/*这一段是计算步骤开始*/
let i =1
for (let index = 1; index {
console.log(result)
})
console.log(123456)
```javascript
async function myfunc1() {
return new Promise((resolve, rejects) => {
/*这一段是计算步骤开始*/
let i = 1
for (let index = 1; index {
/*这一段是计算步骤开始*/
let i =1
for (let index = 1; index {
resolve("my func2")
})
}
```
@onlxx123 确实如你所说,谢谢你
```javascript
function myfunc1_timeout(){
return new Promise((resolve,rejects)=>{
setTimeout(()=>{
/*这一段是计算步骤开始*/
let i =1
for (let index = 1; index {
console.log(result)
})
console.log(123456)
```