ynyjyz 最近的时间轴更新
ynyjyz

ynyjyz

V2EX 第 359076 号会员,加入于 2018-10-27 22:57:09 +08:00
今日活跃度排名 17841
ynyjyz 最近回复了
6 小时 38 分钟前
回复了 shendaowu 创建的主题 JavaScript JavaScript 中 async/await 有没有必要彻底搞懂?
Promise 、async 和 await 是 JavaScript 语言中处理异步操作的三个重要概念。下面我将分别解释它们的含义和用法:

Promise
Promise 是一种用于异步计算的对象。它代表了一个可能现在还没有结果,但将来会有结果的值。一个 Promise 对象有三种状态:

Pending (进行中):初始状态,既不是成功,也不是失败状态。
Fulfilled (已成功):操作成功完成。
Rejected (已失败):操作失败。
const myPromise = new Promise((resolve, reject) => {
// 异步操作
const condition = true; // 假设这是异步操作的结果
if (condition) {
resolve('Promise is resolved successfully.');
} else {
reject('Promise is rejected.');
}
});

myPromise.then((value) => {
console.log(value); // 如果成功,将打印 'Promise is resolved successfully.'
}).catch((error) => {
console.error(error); // 如果失败,将打印 'Promise is rejected.'
});
async/await
async 和 await 是基于 Promise 的语法糖,它们使得异步代码的编写和同步代码一样直观。

async:用于声明一个函数是异步的。这意味着函数内部可能会执行一个或多个异步操作,并且函数返回的是一个 Promise 对象。
await:用于等待一个 Promise 对象的结果。它只能在 async 函数内部使用。
async function asyncFunction() {
try {
const result = await myPromise; // 等待 myPromise 的结果
console.log(result); // 'Promise is resolved successfully.'
} catch (error) {
console.error(error); // 'Promise is rejected.'
}
}

asyncFunction();
使用 async 和 await 可以避免所谓的“回调地狱”,并使异步代码的逻辑更加清晰。

区别和联系
Promise 是一种异步操作的模式,async/await 是基于 Promise 的更简洁的语法。
async 函数返回一个 Promise ,await 使得你可以暂停 async 函数的执行,等待 Promise 的解决。
Promise 需要使用 .then() 和 .catch() 来处理结果和错误,而 async/await 使用 try/catch 来处理。
这些概念是现代 JavaScript 异步编程的基础,它们允许开发者以一种更接近同步编程的方式来处理异步任务。
买了 20 元的兑换点数一直没到账
我觉得做的非常漂亮,可惜我已经转 python 不会用得到了
2022-06-24 17:27:11 +08:00
回复了 sedgwickz 创建的主题 Vue.js 最近公司用到 vue3,练手做了一个 Todo demo,欢迎试用!
没有完成按钮
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2873 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 14:27 · PVG 22:27 · LAX 07:27 · JFK 10:27
Developed with CodeLauncher
♥ Do have faith in what you're doing.