【问题标题】:Javascript - Use response from functionJavascript - 使用函数的响应
【发布时间】:2020-02-21 16:21:21
【问题描述】:

我正在尝试开发一个全局函数,以便更轻松地从另一个文件中使用它。

在我工作的某一时刻,我有这样的经历:

            .then(function(response) {
                if(response.data.code == 200)
                {
                    Swal.fire({
                        title: 'Modifications enregistrées !',
                        icon: 'success',

                        }).then(function() {
                            console.log(response);

                            // a parameter function which will used here
                            afterFinish();

                        });
                }

所以在第二个 then() 中,我可以访问 console.log 中的响应。

现在,我调用一个作为参数传递的函数。此函数还必须使用“响应”属性。除非它不起作用。

例子:

我的afterFinish函数参数:

afterFinish: function(response){
  console.log(response);
}

所以在我的主要功能中,它应该给出如下内容:

then(function() {
     console.log(response);

     // a parameter function which will used here
     //afterFinish function;
     console.log(response);

});

第一个 console.log () 将向我发送正确的 Response 对象。第二个会返回一个空的 Response 对象给我。

另一方面,如果我将 afterFinish() 函数的内容直接放在代码中而不是调用它,那么我一定可以访问它。

有人知道该怎么做吗?

【问题讨论】:

  • 您的代码希望您通过它,而您正在做afterFinish(); 所以嗯afterFinish(response); ???

标签: javascript function parameters response call


【解决方案1】:

response 传递给afterFinish

afterFinish(response)

接受它作为afterFinish 中的参数(我认为你已经是这一部分了):

afterFinish: function(response) {
    // ...
}

使用setTimeout 实现异步的实时示例:

function fakeAjax() {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve(Math.random());
        }, 800);
    });
}

function myFunction(options) {
    const {afterFinish} = options;
    fakeAjax()
    .then(response => {
        afterFinish(response);
    })
    .catch(error => {
        // ...handle/report eror...
    });
}

console.log("Running...");
myFunction({
    afterFinish: function(response) {
        console.log(`Response is ${response}`);
    }
});

【讨论】:

  • 是的,它有效,非常感谢!我尝试了这个对我来说似乎合乎逻辑的解决方案,除了我还在 then 中添加了 response 属性,因此它不起作用。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-12-05
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多