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

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

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

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

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

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);
       }
    });
});

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

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

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

在定义回调函数时,您将请求将在函数体中使用的参数(在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);
           }
        });
    });
本文链接:https://www.f2er.com/3158528.html

大家都在问