首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么await不在fs中等待?

await不在fs中等待的原因是因为fs模块是Node.js中的文件系统模块,用于对文件进行读写操作。在Node.js中,文件操作是异步的,即读写文件的过程是非阻塞的,可以在文件读写的同时执行其他任务。为了处理异步操作,Node.js提供了回调函数、Promise和async/await等方式。

在使用fs模块进行文件操作时,可以使用回调函数来处理异步操作的结果,也可以使用Promise进行链式调用,或者使用async/await进行同步化的写法。但是,由于fs模块本身就是异步的,所以在fs模块中使用await是没有意义的,因为没有需要等待的异步操作。

如果想要在文件操作中使用await,可以使用fs.promises模块,该模块提供了一些Promise化的文件操作方法,可以使用await来等待异步操作的结果。例如,可以使用fs.promises.readFile()方法来读取文件内容,并使用await等待读取操作完成。

需要注意的是,使用await等待文件操作时,需要将其放在async函数中,以便使用await关键字。例如:

代码语言:txt
复制
const fs = require('fs').promises;

async function readFile() {
  try {
    const data = await fs.readFile('file.txt', 'utf8');
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

readFile();

在上述代码中,使用await等待fs.promises.readFile()方法读取文件内容,并将其放在async函数readFile()中。当文件读取完成后,将读取到的内容打印出来。如果发生错误,将错误信息打印出来。

总结起来,await不在fs模块中等待的原因是因为fs模块本身就是异步的,没有需要等待的异步操作。如果想要在文件操作中使用await,可以使用fs.promises模块提供的Promise化方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在 WPFUWP 实现一个可以用 await 异步等待 UI 交互操作的 Awaiter

在 WPF/UWP 实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 发布于 2017-10-29 16:38...为了实现异步等待,我们只需要在一切能够能够异步等待的方法前面加上 await 即可。能够异步等待的最常见的类型莫过于 Task,但也有一些其他类型。...本文将通过实现一个适用于 UI 的可等待类型来解决这种 UI 的“耗时”等待问题。 ---- Awaiter 系列文章 入门篇: .NET 什么样的类是可使用 await 异步等待的?...实战篇: 在 WPF/UWP 实现一个可以用 await 异步等待 UI 交互操作的 Awaiter .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 本文阅读建议 本文代码较多,阅读建议...参数的 continuation 是对 await 后面代码的一层包装,调用它即可让 await 后面的代码开始执行。但是,我们却并不是立即就能得到后台线程的返回值。

3.3K31
  • Node.js爬虫之使用puppeteer爬取百度图片

    本文通过puppeteer实现对百度图片的抓取,这里简单介绍下puppeteer puppeteer可以使我们编写一套代码控制浏览器动作,“你可以在浏览器手动执行的绝大多数操作都可以使用 Puppeteer...https:http const ext = path.extname(url) fs.mkdir(dir,function(err){ if(!...puppeteer.launch(config) let page = await browser.newPage() await page.goto(httpUrl) await...//页面搜索跳转 执行的逻辑 page.on('load',async ()=>{ console.warn('正在为你检索【'+options.word+'】图片请耐心等待...将其下载,至于为什么不在page.evaluate执行图片下载逻辑 是因为page.evaluate只能写“前端”的js图片下载需要用到fs、path等模块,我们在page.evaluate里面是无法使用的

    1.4K20

    Linux IO 问题分析利器--iostat

    r_await:每个读请求耗费的平均时间,该时间等于IO设备读操作的时间和在队列中等待的时间。 w_await:每个写请求耗费的平均时间,该时间等于IO设备读操作的时间和在队列中等待的时间。...iostat -xk sdb 1 2.4 await多大才算有问题 如前面介绍所说,await是单个I/O所消耗的时间,包括硬盘设备处理I/O的时间和I/O请求在kernel队列中等待的时间,正常情况下队列等待时间可以忽略不计...在以下实例,sdb是10块960G SSD做raid5,await是0.36毫秒,符合预期。...;读操作则未必,不在缓存的数据仍然需要读取物理硬盘,单个小数据块的读取速度跟单盘差不多。...总结 虽然说iostat输出 util 和srctm不一定准确,我们依然可以借助await 和 avgqu-sz的值合理的分析磁盘的io情况。

    5.5K30

    前端CLI脚手架思路解析并从0到1搭建

    为什么要自己搞脚手架 在实际的开发过程,我们经常用别人开发的脚手架,以节约搭建项目的时间。但是,当npm没有自己中意的脚手架时,我们不得不自己动手,此时学会开发前端CLI脚手架的技能就显得非常重要。...,这里用的是 Async/Await 的写法,其他相关写法可参照 fs-extra 。..., jsonConfig) console.log(symbols.success, 'Set the mirror successful.') ...复制代码 我们需要等待 fs-extra 读取完...打开 lib/init.js 文件,添加以下代码: // 请求 fs-extra 库,用于文件操作 const fse = require('fs-extra') // 请求 ora 库,用于初始化项目时等待动画...用于替换模板字符 const handlebars = require('handlebars') const path = require('path') // 请求 download.js 文件,模板不在本地时执行该操作

    1.5K31

    优雅的异步编程版本答案async和await解析

    ​ 目录 什么是aysnc和await 为什么要用async aysnc函数解决了什么 async 函数的优点 怎么使用async函数 async函数语法 await语法 错误处理 async+await...var fs = require('fs'); var readFile = function (fileName){ return new Promise(function (resolve,...async 和 await,比起星号和 yield,语义更清楚了。async 表示函数里有异步操作,await 表示紧跟在后面的表达式需要等待结果。 (3)更广的适用性。...await语法 await 放置在Promise调用之前,await 强制后面的代码等待,直到Promise对象resolve,得到resolve的值作为await表达式的运算结果 await只能在...错误处理 在async函数里,无论是Promise reject的数据还是逻辑报错,都会被默默吞掉,所以最好把await放入try{}catch{},catch能够捕捉到Promise对象rejected

    48730

    「nodejs + docker + github pages 」 定制自己的 「今日头条」

    ok~我们趁阴明站长不在的时候,来掘金"拿点"东西~ 掘金的前端热门文章是我比较关注的模块,我们来"拿"这个模块的资讯. const puppeteer = require("puppeteer");...el.innerText) ); // [ '推荐', '后端', '前端', 'Android', 'iOS', '人工智能', '开发工具', '代码人生', '阅读' ] // 找出菜单前端模块对应的索引...const webNavIndex = navList.findIndex(item => item === navType); // 点击前端模块并等待页面跳转完成 await Promise.all...// resource/index.json { "data": [] } 我们基于 nodejs fs 文件操作模块,简单封装读写方法。...// tools/index.js const fs = require("fs"); const fileServer = { // 写文件 write(path, text) { fs.writeFileSync

    1.2K40

    细说JS异步发展历程

    换句话说,就是由“调用者”主动等待这个“调用”的结果。此调用执行完之前,阻塞之后的代码执行。 2.什么是异步? "调用"在发出之后,这个调用就直接返回了,没有返回结果。...3.JavaScript 为什么需要异步? 首先我们知道JavaScript是单线程的(即使新增了webworker,但是本质上JS还是单线程)。同步代码意味着什么呢?...而异步则不会,我们不会等待异步代码的执行,继续执行异步任务之后的代码。 ? 概念了解完了,我们就要进入今天的正题了。...4.async/await ES7引入了 async/await 概念。async 其实是一个语法糖,它的实现就是将 Generator函数和自动执行器(co),包装在一个函数。...仍然以上文的readFile (先读取A文本内容,再根据A文本内容读取B再根据B的内容读取C) 为例,使用 async/await 来实现: const fs = require('fs'); const

    2.3K21

    如何使用Puppeteer在Node JS服务器上实现动态网页抓取

    例如,可以模拟用户在搜索框输入关键词,并点击搜索按钮:// 在搜索框输入关键词await page.type('#search-input', 'puppeteer');// 点击搜索按钮await...该案例的目标是访问百度首页,输入关键词“puppeteer”,点击搜索按钮,等待搜索结果出现,并将搜索结果的第一条链接的标题和网址保存到一个文件。...// 引入puppeteer库和fs库(用于文件操作)const puppeteer = require('puppeteer');const fs = require('fs');// 定义一个异步函数...'}); // 在搜索框输入关键词“puppeteer” await page.type('#kw', 'puppeteer'); // 点击搜索按钮 await page.click('#su...fs.writeFileSync('result.txt', `${firstResult.title}\n${firstResult.url}`); // 关闭浏览器 await browser.close

    79310

    asyncawait初学者指南

    JavaScript的async和await关键字提供了一种现代语法,帮助我们处理异步操作。在本教程,我们将深入研究如何使用async/await来掌控JavaScript程序的流程控制。...await关键字 接下来要做的是,在我们的函数的任何异步操作前面加上 await 关键字。这将迫使JavaScript解释器"暂停"执行并等待结果。...echo(5); console.log(res); } getValue(); // 5 因为echo函数返回一个promise,而getValue函数await关键字在继续程序之前等待这个...Node还在其内置的util模块添加了一个promise函数,可以将使用回调函数的代码转换为返回promise。而从v10开始,Node的fs模块的函数可以直接返回promise。...从promise到async/await的转换 那么,为什么这一切对我们来说都很重要呢? 好消息是,任何返回promise的函数都可以使用async/await

    29020

    node.js的async和await

    一、async和await是什么 ES2017 标准引入了 async 函数,使得异步操作变得更加方便,async其实本质是Generator函数的语法糖 async表示函数里有异步操作 await表示在后面的表达式需要等待结果...async函数返回的是一个Promise对象,可以使用then方法添加回调函数,一旦遇到await就会先返回。...要想使用yield方法,得不停地执行next()切换到下一个yeild,调用变成了下面这样 var fs = require('fs'); var readFile = function (fileName...console.log(f2.toString()); }; async和await,比起*和yield,语义更清楚了。...async表示函数里有异步操作,await表示在后面的表达式需要等待结果 async函数的返回值是Promise对象 await后面,可以是Promise对象和原始类型的值(数值、字符串和布尔值,会自动转换成

    1.4K30

    解析Node.js 的 Stream(流)

    为什么要用流 与其他数据处理方法相比,流有两个主要优势: 内存效率:不需要加载大量的数据到内存就可以处理 时间效率:一旦有了数据就开始处理,而不必等待传输完所有数据 Node.js 的 4 种流(...例如,在基于 Node.js 的 HTTP 服务器,request 是可读流,response 是可写流。还有fs 模块,能同时处理可读和可写文件流。...await (const chunk of readable) { console.log(chunk); } } const readable = fs.createReadStream...(); // (C) // 等待完成,如果有错误则抛出 await finished(writable); } await writeIterableToFile( ['One', ' line...writable.write(chunk)) { await once(writable, 'drain'); } 关闭可写流,并等待写入完成(C行): writable.end(); await

    2.6K30

    iostat查看硬盘读写速度

    root@Kylin104:/home/s3fs-fuse# iostat -d sdm -k 2 -x Linux 4.4.131-20200704.kylin.server-generic (Kylin104...r_await w_await svctm %util sdm 0.00 0.19 0.07 0.14 3.78 10256.13 97332.05...0.00 0.00 0.00 0.00 0.00 0.00 ^C root@Kylin104:/home/s3fs-fuse# rrqm/s:每秒这个设备相关的读取请求有多少被...Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被...如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长, 系统上运行的应用程序将变慢。

    2.8K30

    ES2017 异步函数的最佳实践(`async` `await`)

    async关键字隐含初始化了几个Promise 【说明1】,以便最终在函数体调用 await关键字的函数。...相反,await关键字在语义上意味着阻止执行。为了获得最大的效率,判断整个函数体内何时何地使用await关键字是关键点。 等待异步函数的最合适时间并不总是像立即等待"?...`; } 在上面的示例,我们立即等待每个 "thenable" 表达式。这样做的结果是反复阻止执行,从而又累积了函数的空闲时间。...我们不需要立马等待 "thenable"的返回结果。相反,我们可以暂时将它们作为承诺存储在一个变量。异步任务仍将被调度,但我们将不再被迫阻塞执行。...另一方面,await关键字发出信号通知异步函数暂停执行,当 promise resolves 的时候才会继续执行。在此等待期间,“微任务”被安排以保留暂停的执行状态。

    1.8K30
    领券