Ajax承诺使用父/子函数

时间:2017-01-18 20:32:22

标签: javascript jquery ajax promise

我正在使用taggle.js的ajax调用来检查数据库的类型化标记值。标记文档指定return false事件上的onBeforeTagAdd以防止添加标记,但我知道无法使用ajax,因为它是异步的。我已经看到其他SO问题表明承诺使函数依赖于ajax响应,但是当ajax调用在依赖于它的响应的父函数内时,我很难理解我是如何使用promises的。 - 有人可以提供建议吗?这是带有ajax调用的代码:

new Taggle('tagexample', {
    onBeforeTagAdd: function(event, tag) {
        // return false here would prevent tag from being added
        $.ajax({
            method:"POST",
            url:"inputcheck.php",
            data:"tag="+tag,
            dataType:"html",
            success:function(result){
                alert(result);
                if (result == 'no') {
                    // return false here won't work
                }
            }

        });
    },
});

1 个答案:

答案 0 :(得分:-1)

Taggle将需要支持onBeforeTagAdd方法上的promises,从中查看它不会。

我能想到的唯一可行的方法就是返回false(在进行ajax调用之后),然后动态创建标签,如果是的话。

new Taggle('tagexample', {
    onBeforeTagAdd: function(event, tag) {
        $.ajax({
            method:"POST",
            url:"inputcheck.php",
            data:"tag="+tag,
            dataType:"html",
            success:function(result){
                alert(result);
                if (result == 'yes') {
                    // create tag
                }
            }

        });

        return false;
    },
});