Explain the promise callback resolve()

ask:

getTotalAndUse(e){
            // 使用了promise回调,因为judgeType这个函数需要时用use.totalNum,如果这里不实用promise,会造成judgeType的数据是data中的默认数据而不是最新数据
            return new Promise((resolve, reject) => {
                var that = this
                var type = e ? e : this.type
                console.log(e,'e')
                ajaxMethods(
                    'get',
                    `${redeemCode}show/totalAndUseV2`,
                    {
                        contractBatchId: this.id,
                        type: type // 2是兑换码 3是推广码
                    },
                    res => {
                        console.log(res,'?????????res???????????')
                        that.use.totalNum=res.totalNum
                        that.use.useNum=res.useNum
                        resolve()
                    },
                )
            })
        },promise的return回调中,resolve代表什么?最下面一行resolve()代表什么?能不能不写这一句代码

answer:

    在这段代码中,resolve()是一个Promise对象的方法,它用于将Promise的状态从"pending"变为"fulfilled",并将结果传递给后续的.then()方法。

在这个特定的场景中,resolve()的作用是表示异步操作已经成功完成,并且通过调用resolve()来通知外部函数。这样,在使用getTotalAndUse()函数时,可以通过.then()方法来处理异步操作的结果。

如果不写resolve(),则无法正确地处理异步操作的结果,导致后续使用.then()方法获取值的操作无法执行。因此,在这个代码片段中,resolve()是必需的,并且需要在异步操作成功完成后进行调用。

    当你创建一个Promise对象时,你可以使用resolve方法来解决(或完成)该Promise。也就是说,resolve函数是用于将Promise的状态从未完成转变为已完成,并传递异步操作的结果。

在这段代码中,通过在new Promise()的回调函数中使用resolve,你创建了一个能够返回一个Promise的函数。当这个Promise被解决时,即成功地执行了异步操作并获取了结果,调用resolve()会触发Promise的解决过程。

在成功的情况下,你可以选择将一些值作为参数传递给resolve方法,这些值将会被传递给后续的.then()方法。在你的代码中,resolve()被调用时没有传递任何参数,因此后续的.then()方法将不会接收到任何参数。

总而言之,resolve是用于表示Promise成功完成并传递结果的方法,它使得你能够在异步操作完成后进行处理。

Guess you like

Origin blog.csdn.net/kuang_nu/article/details/132065006
Recommended