关键词

用法 详解

Promise.then()的用法详解

Promise.then()是ES6中新增的一个异步编程的API,它可以在异步操作执行完成后调用回调函数,从而让开发者更方便地处理异步操作。then()方法可以接受两个参数,第一个参数用来处理正常的操作结果,第二个参数用来处理异常情况。

使用方法

then()方法可以链式调用,可以接受两个参数,第一个参数是一个函数,用来处理正常的操作结果,第二个参数是一个函数,用来处理异常情况。下面是一个简单的使用示例:

let promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    resolve('success');
  }, 1000);
});

promise.then(function(result) {
  console.log(result);
}, function(error) {
  console.log(error);
});

上面的代码中,我们使用Promise构造函数创建了一个Promise对象,调用then()方法,传入了两个函数,第一个函数用来处理正常的操作结果,第二个函数用来处理异常情况。当Promise对象的状态变成resolved时,第一个函数就会被调用,当Promise对象的状态变成rejected时,第二个函数就会被调用。

then()方法还可以接受一个参数,这个参数是一个函数,用来处理正常和异常情况,这种情况下,第二个参数可以省略,下面是一个示例:

let promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    resolve('success');
  }, 1000);
});

promise.then(function(result) {
  console.log(result);
});

上面的代码中,我们只传入了一个函数,这个函数用来处理正常和异常情况,当Promise对象的状态变成resolved时,这个函数就会被调用,当Promise对象的状态变成rejected时,这个函数也会被调用,但是第二个参数就会被忽略。

then()方法还可以接受一个参数,这个参数是一个Promise对象,当这个Promise对象的状态变成resolved时,then()方法就会返回一个新的Promise对象,这个新的Promise对象的状态由then()方法的第一个参数决定,下面是一个示例:

let promise1 = new Promise(function(resolve, reject) {
  setTimeout(function() {
    resolve('success');
  }, 1000);
});

let promise2 = promise1.then(function(result) {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      resolve(result);
    }, 1000);
  });
});

promise2.then(function(result) {
  console.log(result);
});

上面的代码中,promise1是一个Promise对象,promise2是promise1.then()方法的返回值,promise2是一个新的Promise对象,它的状态由then()方法的第一个参数决定。

Promise.then()方法可以接受两个参数,第一个参数用来处理正常的操作结果,第二个参数用来处理异常情况,也可以只传入一个参数,用来处理正常和异常情况,也可以传入一个Promise对象,then()方法会返回一个新的Promise对象,它的状态由then()方法的第一个参数决定。

本文链接:http://task.lmcjl.com/news/13372.html

展开阅读全文