含义
状态
promise 对象代表一个异步操作,有三种状态:
- Pending 进行中
- Resolved 已完成 (又称Fulfilled)
- Rejected 失败
特点
一旦状态改变就不会在改变。
目的
解决回调写法的混乱以及一个统一标准。
以下文字至“用法”前来源于 原文连接
假设有一个数据库保存操作,一次请求需要在三个表中保存三次数据。那么我们的代码就跟上面的代码相似了。这时候假设在第二个db.save出了问题怎么办?基于这个考虑,我们又需要在每一层回调中使用类似try…catch这样的逻辑。这个就是万恶的来源,也是node刚开始广为诟病的一点。
1 | db.save(data, function(data){ |
另外一个缺点就是,假设我们的三次保存之间并没有前后依赖关系,我们仍然需要等待前面的函数执行完毕, 才能执行下一步,而无法三个保存并行,之后返回一个三个保存过后需要的结果。(或者说实现起来需要技巧)