0

0

JavaScript 导航:异步/等待

DDD

DDD

发布时间:2025-01-26 08:04:10

|

577人浏览过

|

来源于php中文网

原创

javascript 导航:异步/等待

异步编程是JavaScript开发中一个关键概念,尤其对新手来说可能比较棘手。JavaScript处理异步代码的方式并非单一,理解常见的异步代码编写方法至关重要。本文将探讨两种主要方法:then/catchasync/await,并介绍try/catch块和安全赋值运算符??=

then/catch方法

then/catch是处理Promise的传统方法。以下示例展示了如何从外部API获取数据:

fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('数据获取错误:', error);
  });

.then()用于处理已解析的Promise,.catch()处理异步操作中的错误。 然而,当需要链式调用多个异步操作时,这种方法会变得冗长且难以阅读。

async/await方法

async/await简化了异步代码的编写。使用async/await,异步操作看起来几乎像同步代码,提高了可读性和可维护性。示例如下:

立即学习Java免费学习笔记(深入)”;

async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('数据处理错误:', error);
  }
}

async关键字声明一个返回Promise的函数。await关键字暂停函数执行,直到Promise解决。这种方法避免了嵌套回调,使代码更清晰。

佳弗O2O系统
佳弗O2O系统

佳弗O2O网站系统——乐活版 环境需求 1. 可用的 www 服务器,如 Apache、Zeus、IIS 等 2. php 4.3.0 及以上 3. Zend Optimizer 2.5.7 及以上 4. MySQL 3.23 及以上,仅针对 MySQL 版 安装 1.安装按照提示流程一步一步安装 2.安装过后如果出现错误,请删除 ./Runtime文件夹 3.如果打开首页 点击导航 出现4

下载

try/catch

try/catch块提供了一种简洁的错误处理方式。将代码放在try块中,在catch块中处理错误,避免了链式.catch()调用。这使得错误处理逻辑更易于理解和维护。

以下示例展示了try/catchasync/await结合使用:

async function processData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    if (!data.success) {
      throw new Error('数据获取失败');
    }
    console.log(data);
  } catch (error) {
    console.error('数据处理错误:', error);
  }
}

安全赋值运算符 ??=

安全赋值运算符??=只在变量为nullundefined时赋值。这在处理潜在的未定义或空响应时非常有用:

async function loadData() {
  const [error, response] = await fetch("https://api.example.com") ?? [];
  const [jsonError, data] = await response?.json() ?? [];
  return data;
}

简洁与可读性

在JavaScript开发中,简洁性和可读性需要权衡。虽然then/catch有时代码更短,但try/catch的可读性和可维护性使其成为更优选择。async/await的简洁结构是异步代码的显著改进。 ??=等运算符虽然可以使代码更简洁,但过度使用可能会降低代码的可读性。 因此,清晰的代码始终优先于简洁的代码。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

236

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

458

2024.03.01

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1501

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

232

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

87

2025.10.17

undefined是什么
undefined是什么

undefined是代表一个值或变量不存在或未定义的状态。它可以作为默认值来判断一个变量是否已经被赋值,也可以用于设置默认参数值。尽管在不同的编程语言中,undefined可能具有不同的含义和用法,但理解undefined的概念可以帮助我们更好地理解和编写程序。本专题为大家提供undefined相关的各种文章、以及下载和课程。

5367

2023.07.31

网页undefined是什么意思
网页undefined是什么意思

网页undefined是指页面出现了未知错误的意思,提示undefined一般是在开发网站的时候定义不正确或是转换不正确,或是找不到定义才会提示undefined未定义这个错误。想了解更多的相关内容,可以阅读本专题下面的文章。

3086

2024.08.14

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

566

2025.12.25

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

391

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号