引言
在前端开发里,Promise 是处理异步操作的核心工具。它把异步逻辑封装起来,解决了传统回调嵌套带来的'回调地狱',让代码更清晰、易维护。其实这个概念不只属于前端,C++11 标准也引入了 std::promise 来支持类似功能。
这次我们直接从手写一个 C++ Promise 类(基于 C++11)入手,看看它是怎么跑起来的,顺便和标准库的 std::promise 对比一下,聊聊各自的适用场景。
前端 Promise 的应用与优势
常见应用场景
定时器 Promise 处理定时器能让逻辑更直观:
function timeout(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
timeout(1000).then(() => {
console.log('1 秒后执行');
});
网络请求 用 Promise 简化 AJAX 数据获取:
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
console.log('获取到数据:', data);
})
.catch(error => {
console.error('请求失败:', error);
});
并发请求
利用 Promise.all 可以并行处理多个请求:
const promise1 = fetch('https://api.example.com/data1');
promise2 = ();
.([promise1, promise2])
.( {
[data1, data2] = responses.( response.());
.([data1, data2]);
})
.( {
.(, data1, data2);
})
.( {
.(, error);
});


