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

常州网站优化公司厦门医院网站建设

常州网站优化公司,厦门医院网站建设,wordpress 个人简洁,企业为什么要做网站从事件驱动到 async/await 在 async/await 出现之后#xff0c;异步变得更加简单#xff0c;这意味着我们不需要重新审视使​​用 Promise 的简单方法。然而#xff0c;我认为有一项有用的技术值得分享。 假设我们正在实现事件驱动的代码。为了便于说明#xff0c;我们通…从事件驱动到 async/await 在 async/await 出现之后异步变得更加简单这意味着我们不需要重新审视使​​用 Promise 的简单方法。然而我认为有一项有用的技术值得分享。 假设我们正在实现事件驱动的代码。为了便于说明我们通过 Node.js 中的 fs 模块来实现文件读取。虽然现在的 fs 模块已经提供了同步读取文件的方法 const data fs.readFileSync(filePath, utf8 );但是我们假装先不知道这一点来看看我们会如何实现。 假设我们有一个名为 file.txt 的文件其中包含以下内容 test看一下这个基于事件的代码示例 const fs require(fs)const filePath xxx/file.txt;fs.readFile(filePath, utf8, (err, data) {if (err) {console.error(文件读取错误, err)return}console.log(data) // test })这种方法存在一些“困难”。例如我们可能希望将文件内容存储在变量中 const fs require(fs)const filePath xxx/file.txt; let fileContent // 存储文件的变量 fs.readFile(filePath, utf8, (err, data) {if (err) {console.error(文件读取错误, err)return}fileContent dataconsole.log(fileContent) test }) console.log(fileContent) // undefined打印当然是 undefined由于 fs.readFile 的异步特性第二个 console.log 将在第一个之前执行。 我们可能还想将整个文件读取代码包装在一个函数中并获取内容作为返回值 const fs require(fs) const filePath files/a;function readFile(path) {fs.readFile(path, utf8, (err, data) {if (err) {console.error(文件读取错误, err)return}return data}) } const fileContent readFile(filePath) // 存储文件内容的变量 console.log(fileContent) // undefined.结果还是 undefined。 实际上这种方法非常适合防止 JavaScript 阻塞执行流。然而在不需要阻塞时就会变得异常头疼。 我们真正想要实现的是 const fileContent await readFile(filePath) // 存储文件内容的变量 console.log(fileContent) // test.为了实现这一点我们需要采取一些步骤。 首先我们将基于事件的代码包装在一个承诺中 const promise new Promise((resolve, reject) {fs.readFile(filePath, utf8, (err, data) {if (err) {console.error(文件读取错误, err)reject()}resolve(data)}) }) promise.then((fileContent) {console.log(fileContent) // test })接下来我们将 Promise 放入函数中并返回它 function readFile(path) {return new Promise((resolve, reject) {fs.readFile(path, utf8, (err, data) {if (err) {console.error(文件读取错误, err)reject()}resolve(data)})}) }readFile(filePath).then((fileContent) {console.log(fileContent) // test })最后让我们使用 async/await 语法代替 .then() function readFile(path) {return new Promise((resolve, reject) {fs.readFile(path, utf8, (err, data) {if (err) {console.error(文件读取错误, err)reject()}resolve(data)})}) } const fileContent await readFile(filePath) console.log(fileContent)这可能会引发一个错误 SyntaxErrorawait 仅在异步函数和模块的顶层主体中有效 除非我们从终端执行 node test.js 独立的 JavaScript 文件否则我们不应该遇到此错误。但是如果我们确实遇到此问题有一个解决方法 function readFile(path) {return new Promise((resolve, reject) {fs.readFile(path, utf8, (err, data) {if (err) {console.error(文件读取错误, err)reject()}resolve(data)})}) } (async () { // 将其换成异步const fileContent await readFile(filePath)console.log(fileContent) // test })()就是这样。现在我们有了一个基于 Promise 的解决方案可以以同步方式调用。 总结 async/await 功能不仅仅是语法糖。正如我们刚刚看到的它足够强大可以将“不舒服的”基于事件的代码转换为简单的同步函数。
http://www.zqtcl.cn/news/495708/

相关文章:

  • 手机网站使用微信支付神级网页设计网站
  • 网站建站大约多少钱如何引流被动加好友
  • 哪些网站可以查企业信息大城县有做网站的吗
  • 上海网站建设电影联wordpress 分类title
  • 杭州网站建设招标免费seo排名优化
  • 网站建设服务费是否无形资产百度一下你就知道官网下载安装
  • 网站付款链接怎么做在线设计商标logo
  • 阿里巴巴做网站多少钱特大新闻凌晨刚刚发生
  • 网站如何做se设计师网站pintset
  • 上海网站制作机构wordpress 优酷免广告
  • 关于网站建设的名言网站开发的技术难点
  • 免费云建站廊坊seo外包
  • 个人网站建设方案书用备案的衡水市网站制作
  • 教育网站的建设品牌营销型网站作用
  • 金凤区建设交通局网站做洗衣液的企业网站
  • 南阳网站优化手机咋做网站
  • 做网站多少钱一年没有网站做cpa怎么赚钱
  • 二手房发布网站怎么做建站哪家好用兴田德润
  • 网站开发有几种深圳网站制作长沙
  • 为什么一个网站外链那么多公司团建活动
  • 公司门户网站建设策划书wordpress清空数据
  • 大兴专注高端网站建设交互设计留学
  • 想要黑掉一个网站 要怎么做网页设计师培训机构有吗
  • 做网站网站应该注意什么关于建设网站的会议纪要
  • 什么网站建设最简单做毕业设计实物的网站
  • 正规网站开发文案电商网站与企业网站区别
  • 襄阳做网站比较有实力的公司长沙出名的网站设计推广
  • 徐州网站设计师最便宜的购物平台
  • 网站域名和空间费用wordpress是是什么技术
  • 企业制作网站一般多少钱上海网站制作费用