ECMAScript6面试知识点Promise面试知识点

Promise从入门到拿Offer之基本概念介绍

2020-12-30  本文已影响0人  团子哒哒


1. Promise是什么?

Promise是js中进行异步编程的新解决方案。从语法上说,它是一个构造函数;从功能上说,Promise对象用来封装一个异步操作并可以获取其成功/失败结果值。

2. Promise的状态有哪些?

Promise的状态有三种:pending、resolved、rejected。

状态改变只有两种:1)pending ——> resolved;2)pending ——> rejected。

注意:状态改变只有两种,且一个Promise对象只能改变一次。也即只有成功或失败其中一种结果。成功的结果我们称之为valve;失败的结果我们称之为reason。

3. Promise的基本流程

Promise的的基本流程

4. Promise的基本使用


// 1. 创建Promise对象,此时状态为Pending,指定执行器函数

  const p = new Promise((resolve, reject) => {

    // 2. 执行器函数启动异步任务

    setTimeout(() => {

      const num = Math.random();

      // const num = 3;

      // 3. 根据不同结果做不同处理

      if (num % 2 === 1) {

        // 成功则调用resolve()函数,指定成功的value,状态变为resolved

        resolve("奇数为成功的结果:" + num);

      } else {

        // 失败则调用reject()函数,指定失败的reason,状态变为rejected

        reject("偶数为失败的结果:" + num);

      }

    }, 1000);

  });

  // 4.指定成功或失败的的回调函数获取成功的value或失败的reason

  p.then(

    // 成功的回调函数获取成功的value

    value => {

      console.log(value)

    },

    // 失败的的回调函数获取失败的reason

    reason => {

      console.log(reason)

    }

  )


5. 回调函数的分类

1)同步回调函数:立即执行,完全结束调用才结束,不会放入回调队列中。

2)异步回调函数:不会立即执行,会放入回调队列中将来执行。如定时器调用、ajax请求,文件操作等。

6. 常见的JS错误

1)Error:所有错误的父类型。

2)ReferenceError:引用变量不存在。

3)TypeError:数据类型不正确。

4)RangeError:数据值超过范围。

5)SyntaxError:语法错误。

上一篇下一篇

猜你喜欢

热点阅读