res在这种情况下是什么意思?

时间:2019-07-12 15:53:18

标签: javascript vue.js

我正在处理vue代码,在它上面到处都可以看到一个变量,但是我不知道这个变量是什么或得到什么。

这是使用它的功能

        cancelDocument() {
            Alert.YesNo("Tem certeza?", "Você está invalidando este documento e ele será bloqueado permanentemente!").then(res => {
                if(res) {

                    this.loading.cancelingDocument = true
                    model.setLikeCanceled(this.document.id).then(res => {
                        this.document.status = res
                        this.loading.cancelingDocument = false
                    }).catch(err => {
                        this.loading.cancelingDocument = false
                    })

                }
            })
        }

我是该领域的新手,但是我根本找不到这是什么。我想它会尝试从正在使用的html中获取一些东西,但是如何?

2 个答案:

答案 0 :(得分:4)

这是为该回调函数声明的参数:

Alert.YesNo("Tem certeza?", "Você está...permanentemente!").then(res => {
// --------------------------------------------------------------^

不必被称为res,名称无关紧要。我猜“ res”是“ resposta”的意思(我们也经常在以英语为中心的编程中使用它来表示“ response”)。

YesNo对话框会用一个答案标志履行其诺言。 res是标志。

then处理程序中的代码调用另一个函数setLikeCanceled返回一个promise。该承诺上的then处理程序被编写为使用res作为参数名称。与第一个参数相比,这是一个不同参数,其中包含来自setLikeCanceled的实现值。 (具有在两个嵌套范围中使用的相同标识符,如 shadowing :内部标识符 shadows 外部标识符,使其在内部范围中不可访问。)是< em>内部 res,而不是外部{}。

答案 1 :(得分:0)

在上面的函数中,setLikeCanceled方法异步运行。该函数的结果通过本机Javascript Promise处理(我们可以知道,因为.then()和.catch()是为Promise保留的)。

完成执行后,可以按您的代码需要的任何方式使用返回的值,但是您需要先设置该值,然后才能继续执行功能。在这种情况下,“ res”仅是对承诺结果的引用。我无法确切告诉您它代表什么,但可以是解决方案或响应。这并不重要,因为您可以将其更改为所需的任何内容。它不是Javascript中的保留字。

在AJAX调用中,很常见的承诺是:由于Web服务调用或您需要联系数据库,因此在设置值之前会有一定的滞后时间。