创建可重复使用的函数以使用回调删除/确认

问题描述 投票:1回答:1

我不确定是否曾问过这个问题,我确实检查过,但不确定如何实际搜索它。

我想创建一个可重复使用的功能来删除,并根据用户的决定进行确认。我创建了这个简单的函数来编辑带有对象值的元素数据,但是我无法运行在第一个函数中设置的回调。

或者也许甚至可以根据用户的决定以某种方式从该函数返回布尔值?

这是我想要实现的逻辑示例

function run(options, cb){
   if(options['success']){
      cb();
   }
}

var options = {success: true};
var cbarray = new Array('id', 'token');

//calling the function and setting the callback
run(options, function(cbarray){
    $.ajax({
       url: 'blabla',
       type: 'post',
       data: {id: cbarray[0], token: cbarray[1]},
       success: function(resp){
          console.log(resp);
       }, error: function(resp){
          console.log(resp);
       }
    });
});

有点难以解释,所以我用自己的代码创建了这个jsfiddlehttps://jsfiddle.net/43zrqkvm/7/

也许我应该为此真正使用诺言?我还没有时间学习诺言,但也许应该吗?

javascript jquery callback
1个回答
0
投票

当您定义回调函数时,您将请求将在函数体中使用的参数(在ajax选项中为您的情况),但在Run函数中您不会传递它]]

它必须看起来像这样

function run(options,arg, cb){
       if(options['success']){
          cb(arg);
       }
    }

    var options = {success: true};
    var cbarray = new Array('id', 'token');

    //calling the function and setting the callback
    run(options,cbarray, function(arg){
        $.ajax({
           url: 'blabla',
           type: 'post',
           data: {id: arg[0], token: arg[1]},
           success: function(resp){
              console.log(resp);
           }, error: function(resp){
              console.log(resp);
           }
        });
    });
© www.soinside.com 2019 - 2024. All rights reserved.