Skip to main content

一些小的知识点

Promise

  • Promise

    • Promise的状态一旦修改就无法改变
  • then

    • then 函数中的参数期待的是函数,如果不是函数的话会发生透传
    Promise.resolve(1)
    .then(2)
    .then(Promise.resolve(3))
    .catch(4)
    .then(res => {
    console.log(res); // 1
    });
  • finally

    • 不管 Promise 的状态是 resolve 还是 rejected,finally 都会执行,它的回调函数是接收不到 Promise 的结果的
    const p1 = new Promise((resolve) => {
    resolve('resolve');
    }).then(res => {
    console.log(res);

    setTimeout(() => {
    console.log(p1); // Promise {<fulfilled>: undefined}
    }, 1000)
    }).finally(res => {
    console.log('finally', res); // finally undefined
    });
    • finally 如果没有报错,p1的结果是 finally 上一个 then 的结果

async await

  • async 函数中 await 的 new Promise 要是没有返回值的话则不执行后面的内容