常见 Promise 面试题及解答

阅读时长 6 分钟读完

概述

Promise 是 JavaScript 中用于处理异步操作的一种机制,可以有效避免回调地狱的问题。在前端面试中,Promise 是一个经常被问到的知识点。本文将介绍几个常见的 Promise 面试题,帮助读者进行复习和准备。

Question 1:如何创建一个 Promise?

创建一个 Promise 可以使用 new Promise() 构造函数:

其中,构造函数接受一个函数作为参数,这个函数有两个参数:resolvereject,分别表示异步操作成功和失败后的操作。

Question 2:如何在 Promise 中处理异步操作?

Promise 中最常见的异步操作是网络请求和定时器。通常,在 Promise 中可以使用原生的 XMLHttpRequest 或者 fetch API 发起网络请求,或者使用 setTimeOutsetInterval 函数创建定时器。

-- -------------------- ---- -------
----- ------- - --- ----------------- ------- -- -
    -- -- -------------- ------
    ----- --- - --- -----------------

    --------------- ------------------------------------------------

    ---------- - -- -- -
        --------------------------
    --

    ----------- - -- -- -
        -----------------------
    --

    -----------
---

----------------------- -- -
    ----------------------
---------------- -- -
    ---------------------
---

-- -- ---------- -----
----- ------- - --- ----------------- ------- -- -
    ------------- -- -
        --------------- -----------
    -- ------
---

---------------------- -- -
    ---------------------
---------------- -- -
    ---------------------
---

Question 3:如何链式调用 Promise?

链式调用 Promise 可以使用 then() 方法,将一个 Promise 的结果传递给另一个 Promise,依次处理异步操作。

-- -------------------- ---- -------
----- -------- - --- ----------------- ------- -- -
    -- ------
    --------------- -----------
---

----- -------- - ----------------------- -- -
    ------ ------- - - ----- -- ---------
---

---------------------- -- -
    -------------------- -- -- ------- -------- ----- -- --------- 
---------------- -- -
    ---------------------
---

Question 4:如何在 Promise 链中处理错误?

在处理异步操作失败时,可以使用 catch() 方法,捕获 reject() 函数的参数并处理错误。

-- -------------------- ---- -------
----- ------- - --- ----------------- ------- -- -
    -- ------
    ---------- ---------------- ---- ----------
---

----------------------- -- -
    ----------------------
---------------- -- -
    ----------------------------- -- -- ---------- ---- -------
---

Question 5:如何同时处理多个 Promise?

在同时处理多个 Promise 时,可以使用 Promise.all() 方法,它接受一个 Promise 数组作为参数,并返回一个新的 Promise 对象。当传入的所有 Promise 都 resolve 时,Promise.all() 才 resolve;如果其中一个 Promise reject 了,Promise.all() 直接 reject。

-- -------------------- ---- -------
----- -------- - --- ----------------- ------- -- -
    ------------- -- -
        --------------------
    -- ------
---

----- -------- - --- ----------------- ------- -- -
    ------------- -- -
        --------------------
    -- ------
---

----- -------- - --- ----------------- ------- -- -
    ------------- -- -
        --------------------
    -- ------
---

---------------------- --------- ----------
    --------------- -- -
        --------------------- -- -- ------------ ----------- -----------
    --
    -------------- -- -
        ---------------------
    ---

结论

通过本文的介绍,我们可以了解几个常见的 Promise 面试题及相应解答,让读者更好的掌握 Promise 的知识。同时,在开发中,我们也应该注意使用 Promise 机制来规范异步操作的处理。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f2c3e8a44b36ee5767a36d

纠错
反馈