Node.js module export async function

一、Demo


1、首先定义 module 文件:bbb.js

const fs = require("fs");

function readFileSync() {
  let result = fs.readFileSync("./result.log");
  return result;
}

async function readFileAsync() {
  let result = await new Promise((resolve, reject) => {
    fs.readFile("./result.log", (err, data) => {
      if (err) reject(err);
      resolve(data);
    });
  });
  return result;
}

module.exports = { readFileSync, readFileAsync };

2、添加 main 文件:aaa.js

const bbb = require("./bbb");

// readFileSync
// console.log("re:", bbb.readFileSync());

// readFileAsync
(async () => { 
  let result;
  result = await bbb.readFileAsync();
  console.log("re:", result);
})();

二、追问


在 main 文件中还是需要有 (async () => {})(); 来包裹整个 function content,有没有更简洁的写法呢?

转载于:https://www.cnblogs.com/xjnotxj/p/11113502.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的示例代码。首先,我们需要安装 `request` 和 `request-promise` 这两个库,可以使用以下命令进行安装: ``` npm install request request-promise ``` 然后,我们可以创建一个名为 `requestUtil.js` 的文件,包含以下代码: ```javascript const request = require('request'); const rp = require('request-promise'); // GET 请求 async function get(url, cookie = '') { const options = { url, headers: { Cookie: cookie, }, json: true, }; return rp(options); } // POST 请求 async function post(url, data, cookie = '') { const options = { url, method: 'POST', headers: { Cookie: cookie, }, body: data, json: true, }; return rp(options); } module.exports = { get, post, }; ``` 这里我们导出了两个函数 `get` 和 `post`,分别用于发送 GET 和 POST 请求。这两个函数都接受三个参数:`url`、`data` 和 `cookie`。其中,`url` 表示请求的地址,`data` 表示 POST 请求发送的数据,`cookie` 表示请求需要携带的 Cookie。 接下来,我们可以在前端的 Vue.js 代码中调用这两个函数,示例代码如下: ```javascript <template> <div> <button @click="handleClickGet">发送 GET 请求</button> <button @click="handleClickPost">发送 POST 请求</button> </div> </template> <script> import { get, post } from './requestUtil'; export default { methods: { async handleClickGet() { try { const result = await get('https://api.github.com/users/octocat'); console.log(result); } catch (err) { console.error(err); } }, async handleClickPost() { try { const result = await post('https://httpbin.org/post', { name: 'Alice', age: 18 }); console.log(result); } catch (err) { console.error(err); } }, }, }; </script> ``` 以上代码中,我们引入了 `requestUtil.js` 中导出的 `get` 和 `post` 函数,并在 Vue.js 实例的方法中调用。在调用函数时,我们可以传入相应的参数,例如发送 GET 请求时,我们可以传入 `https://api.github.com/users/octocat` 作为请求地址。发送 POST 请求时,我们可以传入 `https://httpbin.org/post` 作为请求地址,并传入一个包含 `name` 和 `age` 字段的对象作为请求数据。 需要注意的是,由于 `get` 和 `post` 函数都是异步函数,因此我们需要使用 `async/await` 或者 `.then()` 方法来处理返回的结果。在请求过程中,如果出现错误,我们可以通过 `try/catch` 语句或者 `.catch()` 方法来捕获并处理异常。 希望这个示例代码能够帮助您实现您的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值