PageSourceSearch

https://www.xzboss.cn/static/js/async/55.5282f45374.js

js xzboss.cn collected 2026-10-05 06:32:32 UTC 63,471 bytes, 1 lines download raw bytes

1"use strict";(self.rspackChunkblog=self.rspackChunkblog||[]).push([["55"],{9986(s,n,r){r.r(n),r.d(n,{default:()=>l});var e=r(2615),o=r(416);function i(s){let n={a:"a",blockquote:"blockquote",code:"code",font:"font",h2:"h2",h3:"h3",h4:"h4",h5:"h5",p:"p",pre:"pre",span:"span",...(0,o.R)(),...s.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(n.h2,{id:"第十一章期约与异步函数",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#第十一章期约与异步函数",children:"#"}),"第十一章,期约与异步函数"]}),"\n",(0,e.jsxs)(n.h3,{id:"散碎",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#散碎",children:"#"}),"散碎"]}),"\n",(0,e.jsxs)(n.h5,{id:"resolve-是幂等的reject-不是",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#resolve-是幂等的reject-不是",children:"#"}),".resolve() 是幂等的,.reject() 不是"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"javascript",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" origin"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'inner'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsx)(n.span,{className:"line"}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" p"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(origin);"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(p "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"==="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" origin"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" p); "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// true Promise<fulfilled>: 'inner'"})]}),"\n",(0,e.jsx)(n.span,{className:"line"}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" p2"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".reject"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(origin);"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(p2 "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"==="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" origin"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" p2); "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// false Promise<rejected>: Promise"})]})]})})}),"\n",(0,e.jsxs)(n.h5,{id:"外部-try-catch-无法捕捉错误",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#外部-try-catch-无法捕捉错误",children:"#"}),"外部 try catch 无法捕捉错误"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"javascript",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"try"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".reject"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"1"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"} "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"catch"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" (error) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(error); "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// 捕获不到,会报错"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})})]})})}),"\n",(0,e.jsxs)(n.h5,{id:"多个串联的期约处理可以理解为树接口执行顺序可以理解为
1层序遍历",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#多个串联的期约处理可以理解为树接口执行顺序可以理解为层序遍历",children:"#"}),"多个串联的期约处理,可以理解为树接口,执行顺序可以理解为层序遍历"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"javascript",children:(0,e.jsxs)(n.code,{children:[(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// 		  A"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// 		/   \\"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// 	 B     C"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"//  / \\   / \\"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// D   E F   G"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"let"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" A"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" new"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"((resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reject) "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'A'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"  resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"();"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"});"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"let"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" B"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" A"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(() "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'B'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"));"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"B"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(() "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'D'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"));"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"let"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" C"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" A"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(() "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'C'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"));"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"C"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(() "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'F'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"));"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"B"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(() "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'E'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"));"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"C"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(() "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'G'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"));"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// A B C D E F G"})})]})})}),"\n",(0,e.jsxs)(n.h5,{id:"有方法会静默处理错误allrace",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#有方法会静默处理错误allrace",children:"#"}),"有方法会静默处理错误(.all、.race"]}),"\n",(0,e.jsx)(n.p,{children:(0,e.jsx)(n.font,{style:{color:"rgb(13, 13, 13)"},children:"后续解决或拒绝的期约将不再影响返回的期约的状态。这种行为称为“静默处理”,意味着后续的拒绝不会触发任何错误或被捕获的拒绝处理程序。(catch 会触发的话,只能被触发一次"})}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"javascript",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"let"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" p "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".race"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(["}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".reject"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"1"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:")"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" new"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"((_"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reject) "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" reject"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"2"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"))]);"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"p"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".catch"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(reason "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" setTimeout"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" 0"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reason)); "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// 1 (之后不再处理2"})]})]})})}),"\n",(0,e.jsxs)(n.h5,{id:"串行期约组合合并处理",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#串行期约组合合并处理",children:"#"}),"串行期约组合合并处理"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"javascript",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" add_2"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" x "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" x "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"+"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" 2"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:";"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" add_4"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" x "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" x "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"+"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" 4"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:";"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" add_8"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" x "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" x "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"+"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" 8"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:";"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" fns"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" [add_2"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" add_4"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" add_8];"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" compose"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" fns "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  return"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" x "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" fns"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".reduce"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"((p"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" fn) "}),(0,e.jsx)(
1n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" p"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(fn)"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(x));"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"};"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" flow"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" compose"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(fns);"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"flow"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"1"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:")"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(result "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(result);"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"});"})})]})})}),"\n",(0,e.jsxs)(n.h3,{id:"期约取消与进度",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#期约取消与进度",children:"#"}),"期约取消与进度"]}),"\n",(0,e.jsxs)(n.blockquote,{children:["\n",(0,e.jsx)(n.p,{children:"es6+ 并没有实现取消与进度,委员会认为取消与进度是激进的;如果实现取消与进度,会让期约连锁和合成过度复杂"}),"\n"]}),"\n",(0,e.jsxs)(n.h5,{id:"期约取消",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#期约取消",children:"#"}),"期约取消"]}),"\n",(0,e.jsx)(n.p,{children:"我不知道为何书上要那样写,感觉总是不直观,以下借鉴进度的写法实现取消"}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"javascript",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"<"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"button"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" id"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:'"start"'}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:">Start</"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"button"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:">"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"<"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"button"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" id"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:'"cancel"'}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:">Cancel</"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"button"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:">"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"<"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"script"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:">"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  const startBtn = document.querySelector('#start')"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  const cancelBtn = document.querySelector('#cancel')"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  class CouldCancelPromise {"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"    constructor"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(executor) {"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"      // 保留原来的 resolve,reject 并添加 cancel 函数"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"      return new "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"((resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reject) "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"        executor"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reject"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" resolve)"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"      })"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    }"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  }"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  startBtn.addEventListener('click', () => {"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"    console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'wait...'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:")"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    const cancelPromise "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" new"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" CouldCancelPromise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"((resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reject"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" cancel) "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"      const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" id"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" setTimeout"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" 3000"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:" 'done'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:")"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"      cancelBtn"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".addEventListener"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'click'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" () "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"        cancel"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'cancel'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:")"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"        clearInterval"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(id)"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"      })"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    })"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"    cancelPromise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(result "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"      console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(result)"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    })"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  })"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"</"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"script"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:">"})]})]})})}),"\n",(0,e.jsxs)(n.blockquote,{children:["\n",(0,e.jsx)(n.p,{children:"也可以采用继承的形式(不推荐继承内置对象)"}),"\n"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"javascript",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"class"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" CouldCancelPromise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" extends"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  constructor"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(executor) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"    super"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"((resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reject) "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"      executor"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reject"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" resolve);"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    });"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  }"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})})]})})}),"\n",(0,e.jsxs)(n.h5,{id:"期约进度就如-fetch-的下载进度一样大致代码如下",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#期约进度就如-fetch-的下载进度一样大致代码如下",children:"#"}),"期约进度,就如 fetch 的下载进度一样,大致代码如下"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"javascript",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"class"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" ProgressPromise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" extends"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs
1)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  constructor"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(executor) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"    const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" notifyHandlers"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" [];"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"    super"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"((resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reject) "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"      return"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" executor"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reject"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" progress "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"        notifyHandlers"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".forEach"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(notify "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"          notify"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(progress);"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"        });"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"      });"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    });"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"    this"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:".notifyHandlers "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" notifyHandlers;"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  }"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"  notify"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" function"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" (fun) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"    this"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"."}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"notifyHandlers"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".push"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(fun);"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"    return"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" this"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:";"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  };"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" p"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" new"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" ProgressPromise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"((resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" reject"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" notify) "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  function"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" getData"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(step) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"    if"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" (step "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"<"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" 5"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:") {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"      notify"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"`"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"${"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"step "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"*"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" 20"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"}"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:" %.........`"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"      setTimeout"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(getData"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" 1000"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" step "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"+"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" 1"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    } "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"else"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"      resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'done'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    }"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  }"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"  getData"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"0"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"});"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"p"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".notify"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(progress "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(progress);"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"});"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"p"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(res "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(res);"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"});"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"/*"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"20 %........."})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"40 %........."})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"60 %........."})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"80 %........."})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"done"})}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"*/"})})]})})}),"\n",(0,e.jsxs)(n.h3,{id:"异步函数",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#异步函数",children:"#"}),"异步函数"]}),"\n",(0,e.jsxs)(n.h4,{id:"async",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#async",children:"#"}),"async"]}),"\n",(0,e.jsx)(n.p,{children:"用于定义异步函数,只在异步函数内才能使用 await"}),"\n",(0,e.jsxs)(n.h4,{id:"await",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#await",children:"#"}),"await"]}),"\n",(0,e.jsx)(n.p,{children:"await 可以展平 thenable 对象"}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"javascript",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"async"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" function"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" foo"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"}
1,children:"() {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" origin"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:" 'xz'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:";"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" obj"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {};"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" thenable"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"    then"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(callback) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"      callback"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'thenable'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"    }"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"  };"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  const"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" p"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" ="}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'resolve'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"await"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" origin"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" await"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" obj"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" await"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" thenable"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" await"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" p);"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  await"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".reject"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'reject'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"'end'"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"); "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// 不执行"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"foo"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"}
1,children:"()"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".catch"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:".log);"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"// xz {} thenable resolve reject"})})]})})}),"\n",(0,e.jsxs)(n.h4,{id:"实现-sleep",children:[(0,e.jsx)(n.a,{className:"rp-header-anchor","aria-hidden":"true",href:"#实现-sleep",children:"#"}),"实现 sleep"]}),"\n",(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:"shiki css-variables",style:{backgroundColor:"var(--shiki-background)",color:"var(--shiki-foreground)"},tabIndex:"0",lang:"javascript",children:(0,e.jsxs)(n.code,{children:[(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"function"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" sleep"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(delay) {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  return"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" new"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:" Promise"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(resolve "}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"=>"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" setTimeout"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"(resolve"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-punctuation)"},children:","}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:" delay));"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"async"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:" function"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" main"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"() {"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"1"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-keyword)"},children:"  await"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:" sleep"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"1000"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"  console"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:".log"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"("}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"2"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:");"})]}),"\n",(0,e.jsx)(n.span,{className:"line",children:(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"},children:"}"})}),"\n",(0,e.jsxs)(n.span,{className:"line",children:[(0,e.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"main"}),(0,e.jsx)(n.span,{style:{color:"var(--shiki-foreground)"}
1,children:"();"})]})]})})})]})}function l(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{wrapper:n}={...(0,o.R)(),...s.components};return n?(0,e.jsx)(n,{...s,children:(0,e.jsx)(i,{...s})}):i(s)}l.__RSPRESS_PAGE_META={},l.__RSPRESS_PAGE_META["%E5%89%8D%E7%AB%AF%2F%E8%AF%AD%E8%A8%80%2FJavaScript%2FJavaScript%E9%AB%98%E7%BA%A7%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1v4%2F%E7%AC%AC11%E7%AB%A0%20%E6%9C%9F%E7%BA%A6%E4%B8%8E%E5%BC%82%E6%AD%A5%E5%87%BD%E6%95%B0.md"]={toc:[{id:"第十一章期约与异步函数",text:"第十一章,期约与异步函数",depth:2},{id:"散碎",text:"散碎",depth:3},{id:"期约取消与进度",text:"期约取消与进度",depth:3},{id:"异步函数",text:"异步函数",depth:3},{id:"async",text:"async",depth:4},{id:"await",text:"await",depth:4},{id:"实现-sleep",text:"实现 sleep",depth:4}],title:"第11章 期约与异步函数",headingTitle:"",frontmatter:{title:"第11章 期约与异步函数",createTime:"2023-09-10T00:00:00.000Z"}}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.