AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

如何中止一個 Promise 呢?一個有意思的問題

來源: 責編: 時間:2024-05-20 08:53:02 184觀看
導讀前言最近看到一道大廠的面試題,我覺得這道題不錯,能考驗到大家的 Promise 基礎。題目如下~看到這道題你們會怎么去回答呢?就比如有以下的一個 Promise ,我們要如何去中止他呢?用變量去中斷?很多人會第一時間想到,使用一個變

前言

最近看到一道大廠的面試題,我覺得這道題不錯,能考驗到大家的 Promise 基礎。題目如下~lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

看到這道題你們會怎么去回答呢?就比如有以下的一個 Promise ,我們要如何去中止他呢?lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

用變量去中斷?

很多人會第一時間想到,使用一個變量去控制要不要中止這個 Promise:lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

但是你們覺得這樣是對的嗎?其實這樣并不是真正的中止,因為我們只是限制了 resolve 的執行,但是 setTimeout 還是走完了,所以輸出了 請求到數據:lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

而真正的中止,肯定是把 setTimeout 也中止掉,所以需要改改:lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

但是可以看到,新增一個標識變量,非常的繁瑣,況且如果有多個 Promise,那就得要有多個標識變量,非常麻煩,所以換一種方式。lcD28資訊網——每日最新資訊28at.com

Promise.race?

我們在工作中都會使用到 Promise.race這個方法去判斷一個請求有沒有超時,那同理,可不可以用 Promise.race 來進行中止 Promise 的操作呢?lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

可以看到,這個中止也不是真的中止,也只是限制了 resolve 的執行,而不是把 setTimeout 也給中斷了~lcD28資訊網——每日最新資訊28at.com

CancelToken

接下來是紅寶書上的做法,堪稱經典,不用使用任何全局的標識變量,也能做到中止 Promise:lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

這種做法的好處是:lcD28資訊網——每日最新資訊28at.com

  • 不需要設置全局的標識變量
  • 多個請求并發也可以區別取消

比如我多次執行的話,想取消哪次就取消哪次,因為每次的 CancelToken實例都是新的!??!lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

lcD28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-89229-0.html如何中止一個 Promise 呢?一個有意思的問題

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 如何在 ASP.NET Core 優雅地處理多接口實現,你學會了嗎?

下一篇: Python 代碼格式化的十個工具與技巧

標簽:
  • 熱門焦點
  • 一加Ace2 Pro官宣:普及16G內存 引領24G

    一加官方今天繼續為本月發布的新機一加Ace2 Pro帶來預熱,公布了內存方面的信息?!疤蕴?8GB ,12GB 起步,16GB 普及,24GB 引領,還有呢?#一加Ace2Pro#,2023 年 8 月,敬請期待。”同時
  • 直屏旗艦來了 iQOO 12和K70 Pro同臺競技

    旗艦機基本上使用的都是雙曲面屏幕,這就讓很多喜歡直屏的愛好者在苦等一款直屏旗艦,這次,你們等到了。據博主數碼閑聊站帶來的最新爆料稱,Redmi下代旗艦K70 Pro和iQOO 12兩款手
  • vivo TWS Air開箱體驗:真輕 臻好聽

    在vivo S15系列新機的發布會上,vivo的最新款真無線藍牙耳機vivo TWS Air也一同發布,本次就這款耳機新品給大家帶來一個簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產
  • 8月總票房已突破10億!《封神》第一:口碑已經成了

    8月5日消息,據燈塔專業版數據,截至8月5日9時35分,8月總票房(含預售)已突破10億。其中,《封神》以大比分的優勢領先。根據官方消息,目前該片總票房已經超過14.
  • K6:面向開發人員的現代負載測試工具

    K6 是一個開源負載測試工具,可以輕松編寫、運行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設計為功能強大、可擴展且易于使用。k6 可用于測試各種應用程序,包括 Web
  • 之家push系統迭代之路

    前言在這個信息爆炸的互聯網時代,能夠及時準確獲取信息是當今社會要解決的關鍵問題之一。隨著之家用戶體量和內容規模的不斷增大,傳統的靠"主動拉"獲取信息的方式已不能滿足用
  • 19個 JavaScript 單行代碼技巧,讓你看起來像個專業人士

    今天這篇文章跟大家分享18個JS單行代碼,你只需花幾分鐘時間,即可幫助您了解一些您可能不知道的 JS 知識,如果您已經知道了,就當作復習一下,古人云,溫故而知新嘛。現在,我們就開始今
  • 疑似小米14外觀設計圖曝光:后置相機模組變化不大

    下半年的大幕已經開啟,而誰將成為下半年手機圈的主角就成為了大家關注的焦點,其中被傳有望拿下新一代驍龍8 Gen3旗艦芯片的小米14系列更是備受大家矚
  • OPPO K11搭載長壽版100W超級閃充:26分鐘充滿100%

    據此前官方宣布,OPPO將于7月25日也就是今天下午14:30舉辦新品發布會,屆時全新的OPPO K11將正式與大家見面,將主打旗艦影像,和同檔位競品相比,其最大的賣
Top