当前位置: 首页 > news >正文

Promise随笔

Promise概念

是异步编程的一种解决方案。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。

Promise 状态

Promise 异步操作有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。除了异步操作的结果,任何其他操作都无法改变这个状态。

Promise 对象只有:从 pending 变为 fulfilled 和从 pending 变为 rejected 的状态改变。只要处于 fulfilled 和 rejected ,状态就不会再变了即 resolved(已定型)。

const p1 = new Promise(function(resolve,reject){resolve('success1');resolve('success2');
}); 
const p2 = new Promise(function(resolve,reject){  resolve('success3'); reject('reject');
});
p1.then(function(value){  console.log(value); // success1
});
p2.then(function(value){ console.log(value); // success3
});

then 方法

then 方法接收两个函数作为参数,第一个参数是 Promise 执行成功时的回调,第二个参数是 Promise 执行失败时的回调,两个函数只会有一个被调用。

Promise 构造函数包含一个参数和一个带有 resolve(解析)和 reject(拒绝)两个参数的回调。在回调中执行一些操作(例如异步),如果一切都正常,则调用 resolve,否则调用 reject。

Promise 的静态方法

Promise.all()
等待所有 Promise 完成,或任意一个 Promise 失败。

实例
Promise.all([promise1, promise2, promise3])
.then((results) => {
// results 是一个包含所有 Promise 结果的数组
console.log(results);
})
.catch((error) => {
// 任一 Promise 失败就会进入这里
console.error(error);
});
Promise.race()
返回最先完成(无论成功或失败)的 Promise 的结果。

实例

Promise.race([promise1, promise2, promise3]).then((result) => {// 使用最先完成的 Promise 的结果console.log(result);}).catch((error) => {// 如果最先完成的 Promise 是失败的console.error(error);});```
Promise.resolve() 和 Promise.reject()
快速创建已解决或已拒绝的 Promise。``` js
const resolvedPromise = Promise.resolve('立即解决的值');
const rejectedPromise = Promise.reject('立即拒绝的原因');```
http://www.jsqmd.com/news/171638/

相关文章:

  • 【AIGC时代C++核心竞争力】:掌握这7种吞吐量优化技巧,性能遥遥领先
  • Docker安装NVIDIA驱动支持TensorFlow-gpu运行
  • GitHub Releases发布TensorFlow项目正式版本
  • transformer模型详解前馈神经网络的作用
  • 【AI推理效率提升300%】:基于C++的分布式任务调度优化全解析
  • C++26重大更新来了,Clang 17已支持?开发者必须关注的3大变革
  • DiskInfo显示磁盘满?清理TensorFlow缓存文件释放空间
  • 如何高效使用TensorFlow 2.9 GPU版进行大模型训练
  • 【C++26并发革命来临】:基于GCC 14的首批实验性功能实测数据曝光
  • 【Rust + Qt开发新范式】:掌握cxx-qt实现双向绑定的7个核心步骤
  • 【C++异步网络架构设计】:手把手教你重构千万级连接系统
  • 揭秘C++网络模块异步化改造:5大核心步骤让你系统吞吐提升10倍
  • 使用清华镜像源加速Conda安装TensorFlow-v2.9全过程
  • GitHub上最受欢迎的TensorFlow-v2.9项目合集分享
  • 【稀缺资料】C++游戏引擎多线程渲染优化全路径拆解:涵盖任务调度与内存屏障
  • Conda env list查看所有TensorFlow相关环境
  • 如何通过焊装工艺管理提升焊点合格率?
  • 如何高效使用论文搜索网站查找学术资源
  • Docker run参数详解:启动TensorFlow-v2.9容器必知
  • Jupyter魔法命令提升TensorFlow调试效率
  • Markdown插入图片:展示TensorFlow训练曲线
  • 解决python--UI自动化iframe切换问题
  • 从政务展厅到大屏一体机,数字人公司世优科技深耕全场景护城河 - 博客万
  • 从零搭建cxx-qt项目:手把手教你规避90%初学者都会踩的坑
  • 如何选择适合工业4.0的设备监控系统以提升智能制造水平?
  • 接口自动化不是救命稻草
  • PyTorch安装教程GPU与TensorFlow资源占用对比
  • 2025年市场评价高的微信朋友圈广告公司推荐,信息流广告代运营/抖音短视频矩阵、AI广告,微信朋友圈广告公司口碑推荐 - 品牌推荐师
  • 【C++异步编程终极指南】:深度剖析std::future链式组合的底层机制
  • 2025年温州同城奢侈品回收排行榜,专业老牌名贵奢侈品回收公司推荐 - 工业推荐榜