JS 最强大的一方面就是它能极其轻易地处理异步编程。
生命周期
初始为挂起态( pending state),这表示异步 操作尚未结束。挂起的是未决的( unsettled )。
一旦异步操作结束,Promise 就会被认为是已决的( settled ),并进入两种可能状态之一:
1. 已完成( fulfilled ): Promise 的异步操作已成功结束;
2. 已拒绝( rejected ): Promise 的异步操作未成功结束,可能是一个错误,或由其他原因导致。
then
无法以编程方式判断 Promise到底处于哪种状态。不过你可以使用 then() 方法在 Promise 的状态改变时执行一些特定操作。
两个参数:第一个参数是 Promise 被完 成时要调用的函数,第二个参数 则是 Promise 被拒绝时要调用的函数,
catch
catch() 与 then() 调用是功能等效的
let promise = readFile('test.txt');
promise.then(function(contents) {
// 监听成功
}, function(err) {
// 监听失败
});
// catch() 与 then() 调用是功能等效的。
promise.catch(function(contents) {
// 监听成功
}, function(err) {
// 监听失败
});
网友评论