当前位置: 首页 > wzjs >正文

高坪网站建设seo排名培训学校

高坪网站建设,seo排名培训学校,wordpress付费内容,wordpress内容溢出文章目录 概况asyncawaitPromise总结常见问题 概况 在ts/js中,async 和 await 是用于简化异步操作的关键字,一般与Promise联用(不理解Promise可以看一下这篇《JS中Promise用法(简要说明)》)。它们的核心作…

文章目录

    • 概况
    • async
    • await
    • Promise
    • 总结常见问题

概况

  • 在ts/js中,async 和 await 是用于简化异步操作的关键字,一般与Promise联用(不理解Promise可以看一下这篇《JS中Promise用法(简要说明)》)。
  • 它们的核心作用是让异步代码的写法更接近同步代码的逻辑,同时保持非阻塞特性。

async

  • 标记函数为异步函数,自动或者主动返回一个 Promise
当你没有显式定义Promise时就会立即自动返回完成的Promise
在这里插入图片描述
当你显式定义Promise时会返回一个根据具体情况变化状态的Promise
在这里插入图片描述
返回值自动包装为Promise<泛型>的例子
在这里插入图片描述

await

  • 暂停函数执行(即停在await修饰的函数那),直到修饰的调用函数返回的Promise完成
await具有暂停直到修饰函数的Promise变为完成状态才继续执行后续代码的能力
在这里插入图片描述

Promise

  • async和Promise是关联的,这里列出来可能的返回类型。
函数返回值Promise类型示例
无return语句Promise< void > (自动包装)async function f(){}
返回类型T(如T为number)Promise< number > (自动包装)async function f(){ return 1; }
返回Promise< T >Promise< T >(不存在自动包装)async function f(){ return Promise.resolve(t); //t instanceof T}
  • async修饰的函数,始终返回Promise,那么返回的Promise何时算完成?
状态触发方式1触发方式2
解决(Resolve)A、【return】函数没报错,正常执行完(返回)C、调用executor提供的【resolve() 】
拒绝(Reject)B、【throw】函数抛出错误C、调用executor提供的【reject()】
// A、函数没报错,正常执行完(返回)
async function resolveExample() {return "success"; // 等价于 Promise.resolve("success")// 也可以不需要return
}
// B、函数抛出错误
async function rejectExample() {throw new Error("failed"); // 等价于 Promise.reject(error)
}
// C、调用executor提供的两个函数类型的参数resolve, reject
async function timeout(delay: number) {return new Promise((resolve, reject) => { //executor提供的两个函数类型的参数resolve, rejectif (delay < 0) {reject("Invalid delay");} else {setTimeout(() => resolve("Timeout done"), delay);}});
}

总结常见问题

  • Q:await可以处理什么值?
  • A:用来处理Promise的,但是可以是任何值,因为就算不是Promise,也会自动包装为Promise
  • Q:对于一个函数,await可以单独出现吗?
  • A:要想函数体内部使用await,必须用async修饰函数(否则报错)。
  • Q:async修饰的函数,返回值是什么?
  • A:任何标记为 async 的函数,无论内部是否包含 await(其实返回值和await没有关系),始终返回 Promise。
  • Q:async修饰的函数,没有显式返回Promise时会发生什么?
  • A:自动将函数返回值包装为一个立即解决的 Promise。
  • Q:通过 await 调用的函数,必须返回 Promise 吗?
  • A:不是必须,但强烈建议。(被调函数如果显式返回Promise则解决了再执行后续,没有返回则自动包装一个立即解决的Promise)
  • Q:如果一个async函数A,函数A的内部仅仅只有一行代码,通过await 调用了一个函数B,问通过变量C接收函数A返回的Promise对象,Promise对象是怎么样的?
  • A:如果函数B调用了resolve(),变量C是一个undefined的结果(因为没有任何return,所以是自动包装了个undefined); 如果函数B调用了reject(),此时变量C是一个和函数B一样的Promise状态(可以理解为继承了内部的没有捕获的异常状态); 如果给函数B调用的地方增加了try catch捕获异常,哪怕是函数B调用了reject(),变量C得到的是一个undefined的Promise结果(因为没有任何return,所以是自动包装了个undefined),这里可以得出,只要async函数A正常执行完毕,就算没有return,都会返回一个undefined结果的Promise。

文章转载自:

http://0iv1LT7U.LyLkh.cn
http://qDcIwsNW.LyLkh.cn
http://8ePBpNfM.LyLkh.cn
http://HZcaBIzI.LyLkh.cn
http://Bz4AaKlc.LyLkh.cn
http://05HKyNC0.LyLkh.cn
http://qHtRPZf7.LyLkh.cn
http://JtDhlkDx.LyLkh.cn
http://fepms7tb.LyLkh.cn
http://svGvhM1F.LyLkh.cn
http://C5QqywLM.LyLkh.cn
http://ZKltPMZS.LyLkh.cn
http://s5vZA8X6.LyLkh.cn
http://d9w3ksM0.LyLkh.cn
http://N3tSeDfb.LyLkh.cn
http://ruTcwfnA.LyLkh.cn
http://IUsLpkTa.LyLkh.cn
http://uzgdFSps.LyLkh.cn
http://67NGvCiH.LyLkh.cn
http://e1SElPFz.LyLkh.cn
http://yb8knTQr.LyLkh.cn
http://SsESKbCr.LyLkh.cn
http://m7m7t0OL.LyLkh.cn
http://pXoSp80W.LyLkh.cn
http://SVkWmWxb.LyLkh.cn
http://3AGt7yCo.LyLkh.cn
http://AH31SIyT.LyLkh.cn
http://wtV2Y0re.LyLkh.cn
http://kmig6mqu.LyLkh.cn
http://g7rYnarJ.LyLkh.cn
http://www.dtcms.com/wzjs/663102.html

相关文章:

  • 做标书需要用到哪些网站查资料江门网站制作开发
  • 网站换了域名怎么查网页制作专业信息
  • 免费制作一个自己的网站如何自己注册域名
  • 如何优化好一个网站网络销售推广是做什么的具体
  • 做玩网站怎么上传图片网站建设的安全应该注意什么
  • 网站后端怎么做好用的wordpress插件
  • 门户网站建设的平台如何搭建一个简单的网站
  • 黄冈智能网站建设平台手机下载视频网站模板下载失败
  • 水产养殖畜禽饲料类网站前端模板找电商平台帮我卖产品
  • 资源下载类网站源码wordpress电商建站
  • 自己的网站怎么创建在线美图
  • 建设营销型网站的原因临检中心网站建设
  • 做网批有专门的网站吗?自己做网站需要填税表吗
  • 彩票网站源码下载wordpress虎嗅
  • 网站seo月报郑州网站建设 seo
  • 石家庄市建设南大街小学网站怎样自创广告网站
  • 中国建设银行手机网站首页南京小程序开发费用
  • 网站模板双语广州市工程交易中心官网
  • 做课件最好的素材网站wordpress仿安卓主题
  • 全网营销推广网站建设电商网站开发哪家好
  • 网站建设的销售好做吗低价自适应网站建设
  • 减肥产品网站模板成都微信网站建设推
  • 免费网站建设咨询云南省建设厅网站二级建造师
  • 远大科技 网站建设诚信网站费用
  • 海外房产网站建设wordpress给会员发信
  • 网站建设投标方案网线制作实验心得体会
  • 如何利用站群做网站wordpress 自定义主页
  • 对于网站反爬虫如何做西安网站建设平台
  • 临沂网站制作公司网站前端开发培训资料
  • 网站开发 php 书籍 推荐如何把网站转换成wap站点