Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成 ,又称Fulfilled)和 Rejected(已失败)。

    
    Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成 ,又称Fulfilled)和 Rejected(已失败)。

resolve(data)将这个promise标记为resolved,然后进行下一步then((data)=>{//do something}),resolve里的参数就是传入then的数据

执行到 resolve()这个方法的时候,就改变promise的状态为resolved,当状态为 resolved的时候就可以执行.then()

当执行到 reject() 这个方法的时候,就改变 promise的状态为 reject,当promise为reject就可以.catch()这个promise了

这两个方法可以带上参数,用于.then()或者 .catch() 中使用。他们的作用就是 用于改变promise的状态,因为状态改变了,所以才可以执行相应的.then()和 .catch()操作。


 JavaScript中的Promise对象为开发者提供了一种管理异步操作的方案。然而,该对象有两个重要的方法:resolve和reject,本文将专注于探讨其中的resolve。
resolve在Promise对象中的作用是将处理结果返回。通俗地说,即是完成异步操作并返回成功的结果或者已经解析的结果。为了解释这句话,我们接下来将分别探究它的内在机制。
首先,让我们看一个简单的例子,来感性理解resolve的作用。我们假设有一个异步请求需要发送,在成功请求后,我们需要将该请求获得的结果返回到应用程序中。
--------------------------------------------------------------------------------------------------------------------------------

首先需要创建一个promise:

javascript
let promise = new Promise(function(resolve, reject) {
// 异步操作
});


其中的resolve是一个函数,在promise对象在异步操作完成后,可以通过调用该函数完成异步操作和向应用程序返回结果:

javascript
let promise = new Promise(function(resolve, reject) {
// 异步操作
// 完成异步操作
resolve("请求成功!");
});


这里的resolve中可以传入一个参数,它是我们在异步操作完成后需要返回到应用程序中的值。在执行resolve函数时,当前的Promise对象的状态就会被修改为“已完成”(Fulfilled),同时该Promise对象的then方法中传入的回调函数将会被调用。

javascript
let promise = new Promise(function(resolve, reject) {
// 异步操作
// 完成异步操作
resolve("请求成功!");
});
promise.then(function(result) {
console.log(result); // 输出 “请求成功!”
});


当Promise对象的状态被resolve修改为“已完成”后,该对象再被resolve或reject也不会再次修改状态,即使函数被调用。

javascript:
let promise = new Promise(function(resolve, reject) {
        // 异步操作
        // 完成异步操作
        resolve("请求成功!");
        // resolve将不会再次修改Promise状态
        resolve("修改状态");
});

promise.then(function(result) {
        console.log(result); // 输出 “请求成功!”
});

在Promise链中,每个then方法接受的函数都会返回一个新的Promise对象。因此,可以使用链式表达式来处理异步操作,并传输、处理异步操作返回的数据:
     
     
javascript: 
        let promise = new Promise(function(resolve, reject) {
        
            // 异步操作
            // 完成异步操作
            resolve("abc请求成功!");
            
        });
        
        promise.then(function(result) {
        
            console.log('Result:'+result);
            
            // 处理请求成功结果
            return result.toUpperCase();
            
        }).then(function(result2) {
        
            console.log(result2); // 输出 “ABC请求成功!”的大写形式
            
        });    
     

resolve方法提供了一种相对容易理解、使用的异步数据返回机制,当然它也有它的不足。例如在异步操作中出现错误时,它无法提供详细的错误提示,这时需要借助reject方法来提供详细的错误信息。

总结一下,resolve是Promise对象的重要方法之一,它能够完成异步操作并返回操作结果,同时也是Promise链式表达式中传递操作结果的重要依据之一。

 

你可能感兴趣的:(web前端,vue.js,html,javascript,前端,vue)