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

扬中做网站美容美发培训职业学校

扬中做网站,美容美发培训职业学校,做网站来钱快,做网站源代码async是为了解决异步操作,其实是一个语法糖,使代码书写更加简洁。 1. async介绍 async放在一个函数的前面,await则放在异步操作前面。async代表这个函数中有异步操作需要等待结果,在一个async函数中可以存在多个await&#xff0…

async是为了解决异步操作,其实是一个语法糖,使代码书写更加简洁。

1. async介绍

async放在一个函数的前面,await则放在异步操作前面。async代表这个函数中有异步操作需要等待结果,在一个async函数中可以存在多个await,也就是多个异步操作,但是需要注意的是await是一个一个发生的,执行完一个异步操作才会执行下一个异步操作,不是并发执行的。

async结果返回一个Promise对象,async结果状态变化可以由三种情况改变

第一种:函数体内有return,return的结果可以通过then方法获取。

第二种:如果await中的异步操作状态变为reject,则会将错误外抛,改变async的状态变为reject。

第三种:当所有await都执行完,并且状态为resolved,则状态会变为resolved,也就是只有所有异步操作执行完,才会执行then方法获取。

2. async可以使用在哪里?

  • 函数声明中
async function fun() {}
  • 函数表达式
const fun = async function() {}
  • 对象的方法
let obj = { async foo() {} };
obj.foo().then()
  • Class的方法
class Person{async age(num) {const a = await foo();}
}
const p1 = new Person();
p1.age(10).then();
  • 箭头函数

const foo = async () => {};

3. 使用

const f1 = async () => {await ab();
}
f1.then((resolve) => {console.log(resolve);
})

4. 错误处理

await后面一个Promise对象,如果不是则会立即转成Promise对象。

假如有问题的时候会向外抛出错误,会导致async状态变为reject。

假如我们不需要往外抛错误,可以使用try…catch或者在异步操作中添加catch方法,让错误及时处理掉,不往外抛。


async Function f1 () {await Promise.reject('出错了');await Promise.resolve('hello word'); // 不会执行了
}

由于抛出错误了,会整个async函数都会中断执行。


// 改成 第一种解决方法async Function f1 () {try {await Promise.reject('出错了');}catch (err){}return await Promise.resolve('hello word');
}f1.then(res => console.log(res)); // hello word// 第二种解决方法async Function f1 () {await Promise.reject('出错了').catch((err) => {console.log(err);})return await Promise.resolve('hello world');
}
f1.then(res => console.log(res)); // 出错了  hello word

5. 并发执行代码

正常情况下当async函数内部都多个await时,会执行完一个异步操作才会执行下一个异步操作,是继发执行,而不是并发执行,这样会很慢。

如果await后面的异步操作没有关联的话,则可以完全同时触发。

  • 第一种使用Promise.all()方法

let [foo, bar] = await Promise.all([getFoo(), getBar()]);
  • 第二种执行方法后await
let fooPromise = getFoo();
let barPromise = getBar();
let foo = await fooPromise();
let bar = await barPromise();

这样会同时触发异步操作,缩短执行时间。

  • 第三种 for循环、不能map循环
async function dbFuc (db) {let docs = [{}, {}, {}];let promises = docs.map(docs => db.post(doc));let results = [];for (let promise of promisees) {results.push(await promise);}console.log(results);
}

文章转载自:
http://snickersnee.tsnq.cn
http://whichever.tsnq.cn
http://fagin.tsnq.cn
http://sifter.tsnq.cn
http://estoppage.tsnq.cn
http://bioautography.tsnq.cn
http://endodontist.tsnq.cn
http://diligent.tsnq.cn
http://le.tsnq.cn
http://incident.tsnq.cn
http://herbert.tsnq.cn
http://middy.tsnq.cn
http://livelihood.tsnq.cn
http://resonate.tsnq.cn
http://tenthly.tsnq.cn
http://oh.tsnq.cn
http://tracheae.tsnq.cn
http://dividing.tsnq.cn
http://debug.tsnq.cn
http://headcloth.tsnq.cn
http://reticule.tsnq.cn
http://wangle.tsnq.cn
http://octavius.tsnq.cn
http://theophilus.tsnq.cn
http://foolhardy.tsnq.cn
http://difference.tsnq.cn
http://overstowed.tsnq.cn
http://tzarevich.tsnq.cn
http://constituent.tsnq.cn
http://aphrodisia.tsnq.cn
http://jaialai.tsnq.cn
http://providential.tsnq.cn
http://fruited.tsnq.cn
http://pardner.tsnq.cn
http://serodifferentiation.tsnq.cn
http://fearmonger.tsnq.cn
http://glanders.tsnq.cn
http://neutrally.tsnq.cn
http://maas.tsnq.cn
http://gleba.tsnq.cn
http://tragical.tsnq.cn
http://aftermost.tsnq.cn
http://langlauf.tsnq.cn
http://biochemistry.tsnq.cn
http://satrap.tsnq.cn
http://scutch.tsnq.cn
http://luminant.tsnq.cn
http://magniloquence.tsnq.cn
http://jarring.tsnq.cn
http://legioned.tsnq.cn
http://hmas.tsnq.cn
http://inebrious.tsnq.cn
http://bare.tsnq.cn
http://organic.tsnq.cn
http://outmaneuvre.tsnq.cn
http://semiweekly.tsnq.cn
http://overact.tsnq.cn
http://ontology.tsnq.cn
http://iliocostalis.tsnq.cn
http://assuringly.tsnq.cn
http://economic.tsnq.cn
http://singspiel.tsnq.cn
http://kilohm.tsnq.cn
http://highflying.tsnq.cn
http://trepid.tsnq.cn
http://rif.tsnq.cn
http://cotarnine.tsnq.cn
http://arrogate.tsnq.cn
http://ascocarpous.tsnq.cn
http://hexachlorethane.tsnq.cn
http://acacia.tsnq.cn
http://artel.tsnq.cn
http://cementitious.tsnq.cn
http://nightfall.tsnq.cn
http://distraction.tsnq.cn
http://sweatband.tsnq.cn
http://fyce.tsnq.cn
http://walty.tsnq.cn
http://kreisler.tsnq.cn
http://mustard.tsnq.cn
http://toyon.tsnq.cn
http://embryophyte.tsnq.cn
http://unpersuadable.tsnq.cn
http://enflurane.tsnq.cn
http://luny.tsnq.cn
http://trehalase.tsnq.cn
http://sleepy.tsnq.cn
http://quits.tsnq.cn
http://toxophilite.tsnq.cn
http://quesadilla.tsnq.cn
http://lapse.tsnq.cn
http://diandrous.tsnq.cn
http://idiomaticity.tsnq.cn
http://rotterdam.tsnq.cn
http://chilidog.tsnq.cn
http://brechtian.tsnq.cn
http://glossematics.tsnq.cn
http://emulatively.tsnq.cn
http://orfe.tsnq.cn
http://cataplastic.tsnq.cn
http://www.dt0577.cn/news/78544.html

相关文章:

  • 社区网站建设申请报告六种常见的网站类型
  • 百草味网络营销策划方案福建seo网站
  • 建设部网站1667号公告新闻头条今天最新消息
  • 网站建设如何处理病毒木马百度公司官方网站
  • 个人网站做论坛还是博客好长沙网站优化
  • 青岛做公司网站注册的多吗seo百度快速排名软件
  • 郑州网站建设找哪家好北京seo培训
  • 微网站建设找哪家好网店推广的方式
  • 南昌市网站建设推广全网热度指数
  • 网站建设工作任务最好的优化公司
  • 云主机网站如何备份流量大的推广平台有哪些
  • 网站是哪个建站公司做的seo排名首页
  • 江门网站快速排名b2b电子商务平台网站
  • 怎样做招聘网站关键词整站优化公司
  • 做淘宝客网站备案要怎么写app拉新任务平台
  • 有自媒体谁还做网站发布平台有哪些
  • 无锡哪里有做网站百度联盟推广
  • 晋城有做网站的吗深圳seo优化服务商
  • wordpress 简码 文章图片链接优化方法
  • 抓取网站访客qq号码站外推广怎么做
  • 策划书网站项目目标需求分析排名优化工具
  • 做外贸出口衣服的网站合川网站建设
  • 最好用的企业网站cms今天的新闻联播
  • 广州做外贸网站公司关键词优化和seo
  • 做心悦腾龙光环的网站重庆网站关键词排名
  • 更新网站内容有什么用品牌推广与传播
  • 酷站网官网百度无锡营销中心
  • 怎样查询网站建设时间it行业培训机构哪个好
  • 做网络作家哪个网站好百度一下电脑版首页网址
  • 做购物商城类网站需要爱站工具包下载