promise你懂了吗?

Posted honghong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了promise你懂了吗?相关的知识,希望对你有一定的参考价值。

你能答对几题?

题目一

const promise = new Promise((resolve, reject) => {
  console.log(1)
  resolve()
  console.log(2)
})
promise.then(() => {
  console.log(3)
})
console.log(4)

题目二

const promise1 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve(‘success‘)
  }, 1000)
})
const promise2 = promise1.then(() => {
  throw new Error(‘error!!!‘)
})

console.log(‘promise1‘, promise1)
console.log(‘promise2‘, promise2)

setTimeout(() => {
  console.log(‘promise1‘, promise1)
  console.log(‘promise2‘, promise2)
}, 2000)

题目三

const promise = new Promise((resolve, reject) => {
  resolve(‘success1‘)
  reject(‘error‘)
  resolve(‘success2‘)
})

promise
  .then((res) => {
    console.log(‘then: ‘, res)
  })
  .catch((err) => {
    console.log(‘catch: ‘, err)
  })

题目四

Promise.resolve(1)
  .then((res) => {
    console.log(res)
    return 2
  })
  .catch((err) => {
    return 3
  })
  .then((res) => {
    console.log(res)
  })

题目五

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    console.log(‘once‘)
    resolve(‘success‘)
  }, 1000)
})

const start = Date.now()
promise.then((res) => {
  console.log(res, Date.now() - start)
})
promise.then((res) => {
  console.log(res, Date.now() - start)
})

题目六

Promise.resolve()
  .then(() => {
    return new Error(‘error!!!‘)
  })
  .then((res) => {
    console.log(‘then: ‘, res)
  })
  .catch((err) => {
    console.log(‘catch: ‘, err)
  })

题目七

const promise = Promise.resolve()
  .then(() => {
    return promise
  })
promise.catch(console.error)

题目八

Promise.resolve(1)
  .then(2)
  .then(Promise.resolve(3))
  .then(console.log)

题目九

Promise.resolve()
  .then(function success (res) {
    throw new Error(‘error‘)
  }, function fail1 (e) {
    console.error(‘fail1: ‘, e)
  })
  .catch(function fail2 (e) {
    console.error(‘fail2: ‘, e)
  })

题目十

process.nextTick(() => {
  console.log(‘nextTick‘)
})
Promise.resolve()
  .then(() => {
    console.log(‘then‘)
  })
setImmediate(() => {
  console.log(‘setImmediate‘)
})
console.log(‘end‘)

以上是关于promise你懂了吗?的主要内容,如果未能解决你的问题,请参考以下文章

域名解析 | A记录 ,CNAME,MX,NS 你懂了吗

面试必问的CAS,你懂了吗?

BIO,NIO, 阻塞,非阻塞,你懂了吗

分布式事务,你懂了吗

面试必问的线程池,你懂了吗?

k8s初面考点ReplicaSet副本集极限9连击你懂了吗?