关于前端async

自定义包上传npmjs

记住要发送的邮箱激活

切换你的npm源

你的包的名称不要和别人的重复

步骤

1.登陆npm账号

npm adduser

2.上传

npm publish

node后端路由的基本原理

后端路由其实就是一个web服务器

路由:

以前:多页面
index.html
a标签 herf = “./detail.html”
a标签 herf = “./shopcar.html”
现在流行:单页面
index.html
这个时候,会将detail/shopcar做成模板 [ejs pug(jade) [Node.js专用] ]
favicon binary(二进制)

npm脚本 npm scripts

1. 概念: npm 脚本指的是package.json中的scripts字段

2.认识package.json

package.json是记录项目依赖包信息和npm脚本命令的一个配置文件

  • 项目依赖包信息:

  • dependencies 生产环境的依赖包

  • devDependencies 开发环境使用的依赖包

  • 脚本命令:

  • 在命令行执行的脚本命令

  • npm 命令 & vs &&

  • & 全部执行玩命令,最后输出结果

  • && 依次执行

前短异步流程工具 *****

1.为什么要进行异步的操做?

Javascript是单线程,依次执行一个任务是想让任务能够顺利的进行,我们需要排队异步就是将任务放入异步队列,主线程执行结束之后再去执行

2.前段异步的操作方式

  • 传统方式

  • 回调函数

  • 事件

  • 前端异步流程操作工具 【封装出来的函数、库】

  • es6 Promise

  • 任务的顺序

  • es6 Generator函数

  • 任务的结果

  • es6 - es8 async 函数

  • 任务结果

  • Node中的异步处理工具 : nextTick setImmedate

  • 任务结果

  • 第三方类库: async.js

  • 参考资料

  1. Promise

    https://blog.youkuaiyun.com/MrJavaweb/article/details/79475949

  2. Generator

    https://www.cnblogs.com/imwtr/p/5913294.html
    
  3. Async-await

    • 里层请求数据结果返回到外层使用

    • Async函数式generator函数 + spawn 自动执行器函数的 封装

  4. Node.js 中的nextTick()和setimmediate()

    https://www.cnblogs.com/5ishare/p/5268273.html
    
  5. asyc库

    https://caolan.github.io/async/
    

参考文档

Event-loop

http://www.ruanyifeng.com/blog/2014/10/event-loop.html?bsh_bid=983729729

史上最易读懂的 Promise/A+ 完全实现

https://zhuanlan.zhihu.com/p/21834559

### 前端 JavaScript 中 `async` 和 `await` 的异步编程使用教程 #### 什么是 `async` 和 `await` `async` 是一种声明函数的关键字,表示该函数内部可能会有异步操作。当一个函数被标记为 `async` 后,它会返回一个 `Promise` 对象[^2]。而 `await` 则是一个运算符,只能在 `async` 函数中使用,用于等待一个 `Promise` 完成并返回其结果。如果 `Promise` 被拒绝,则抛出错误。 #### 如何定义和调用 `async` 函数 下面展示了一个简单的例子来说明如何定义和调用带有 `async` 和 `await` 的函数: ```javascript // 定义一个异步函数 async function fetchData() { try { // 使用 await 等待 Promise 返回的结果 const response = await fetch('https://api.example.com/data'); if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`); // 将响应转换为 JSON 数据 const data = await response.json(); console.log(data); } catch (error) { // 错误处理逻辑 console.error('数据获取失败:', error.message); } } // 调用异步函数 fetchData(); ``` 上述代码展示了如何利用 `async/await` 进行网络请求,并捕获可能发生的异常[^4]。 #### 链式调用与错误处理 虽然可以使用 `.then()` 方法链来进行多个异步任务的连续执行,但是 `async/await` 提供了一种更直观的方式实现同样的功能。例如,在完成第一个 API 请求之后再发起第二个请求: ```javascript async function getTwoRequests() { let firstResponse; let secondResponse; try { // 执行第一次请求 firstResponse = await fetch('https://api.example.com/users'); if (!firstResponse.ok) throw new Error(`First request failed with status code ${firstResponse.status}`); const users = await firstResponse.json(); // 获取某个用户的 ID 并基于此发起第二次请求 const userId = users[0].id; // 假设我们取第一位用户ID secondResponse = await fetch(`https://api.example.com/user/${userId}/details`); if (!secondResponse.ok) throw new Error(`Second request failed with status code ${secondResponse.status}`); const userDetails = await secondResponse.json(); console.log(userDetails); } catch (err) { console.error(err.message); } } getTwoRequests(); ``` 这段代码演示了两个相继依赖的 HTTP 请求是如何通过 `async/await` 实现清晰表达的[^1]。 #### 总结 - `async` 函数总是返回一个 `Promise`。 - 在 `async` 函数体内,可以用 `await` 表达式暂停当前线程直至指定的操作完成。 - 如果发生错误,可以通过 `try...catch` 结构优雅地捕捉这些错误。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值