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