第九章 Promise 相关面试题

面试题1:请写出下列程序的运行结果。

setTimeout(()=>{
    console.log(1)
},0)
Promise.resolve().then(()=>{
    console.log(2)
})
Promise.resolve().then(()=>{
    console.log(4)
})
console.log(3)
答案是:
 3 2 4 1 

面试题2:请写出下列程序的运行结果。

setTimeout(() => {
    console.log(1)
}, 0)
new Promise((resolve) => {
    console.log(2)
    resolve()
}).then(() => {
    console.log(3)
}).then(() => {
    console.log(4)
})
console.log(5)
答案是:
 2 5 3 4 1 

面试题3:请写出下列程序的运行结果。

const first = () => (new Promise((resolve, reject) => {
    console.log(3)
    let p = new Promise((resolve, reject) => {
        console.log(7)
        setTimeout(() => {
            console.log(5)
            resolve(6)
        }, 0)
        resolve(1)
    })
    resolve(2)
    p.then((arg) => {
        console.log(arg)
    })

}))

first().then((arg) => {
    console.log(arg)
})
console.log(4)
答案是:
 3 7 4 1 2 5 

面试题4:请写出下列程序的运行结果。

setTimeout(() => {
    console.log("0")
}, 0)
new Promise((resolve,reject)=>{
    console.log("1")
    resolve()
}).then(()=>{        
    console.log("2")
    new Promise((resolve,reject)=>{
        console.log("3")
        resolve()
    }).then(()=>{      
        console.log("4")
    }).then(()=>{       
        console.log("5")
    })
}).then(()=>{  
    console.log("6")
})

new Promise((resolve,reject)=>{
    console.log("7")
    resolve()
}).then(()=>{         
    console.log("8")
})
答案是:
 1 7 2 3 8 4 6 5 0 

面试题5:手写/自定义 Promise

答案见第六章内容。

results matching ""

    No results matching ""