promise .then 的方法
Promise.then()是JavaScript中Promise对象的一个方法,它用于处理Promise对象的状态变化和返回结果。本文将一步一步回答关于Promise.then()方法的问题,包括它的基本用法、链式调用、错误处理和异常抛出等方面的内容。
一、Promise.then()的基本用法
Promise.then()方法用于将Promise对象的成功状态回调函数和失败状态回调函数进行注册,以便在Promise对象状态变为resolved(成功)或rejected(失败)时执行相应的回调函数。
1.1 注册成功状态回调函数
Promise.then()的第一个参数是一个函数,用于在Promise对象的状态变为resolved时执行。例如,我们可以创建一个简单的Promise对象来演示基本用法:
javascript
let promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    resolve("Promise resolved!");
  }, 2000);
});
promise.then(function(value) {
  console.log(value);
});
在上述代码中,我们创建了一个名为promise的Promise对象,通过调用它的then()方法注册了一个成功状态回调函数。这个回调函数会在2秒钟后被执行,并打印出"Promise resolved!"。
resolved是什么状态1.2 注册失败状态回调函数
Promise.then()的第二个参数是一个函数,用于在Promise对象的状态变为rejected时执行。例如,我们可以修改上面的示例代码来演示这一点:
javascript
let promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    reject(new Error("Promise rejected!"));
  }, 2000);
});
promise.then(null, function(error) {
  console.ssage);
});
在上述代码中,我们在Promise对象被创建后的2秒钟内将其状态变为rejected,并且传递了一个包含错误信息的Error对象。通过调用then()方法并将第二个参数设置为一个函数,我们注册了一个失败状态回调函数,它将在Promise对象状态变为rejected时执行,并打印出"Promise rejected!"。
1.3 处理Promise状态已经改变的情况
在Promise对象的状态变化后,调用.then()方法可以立即执行相应的回调函数。例如,在以下示例中,.then()方法直接执行了成功状态回调函数,因为Promise对象的状态已经是resolved:
javascript
let promise = new Promise(function(resolve, reject) {
  resolve("Promise resolved immediately!");
});
promise.then(function(value) {
  console.log(value);
});
上述代码中,我们创建了一个Promise对象,并立即将其状态变为resolved,而不是通过异步操作来改变其状态。由于Promise对象的状态已经是resolved,.then()方法会立即执行回调函数,并打印出"Promise resolved immediately!"。
二、Promise.then()的链式调用
Promise.then()方法可以链式调用,实现多个异步操作的顺序执行和结果传递。通过在每个.then()方法中返回一个新的Promise对象,我们可以将多个操作串联在一起,实现更复杂的异步操作逻辑。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。