jQuery / Javascript功能链,需要一些技巧(同步/异步)吗?

时间:2019-02-27 10:27:59

标签: javascript jquery asynchronous promise

代码正在对所需部分进行promise,但是我对单个函数链,工作和返回对象很满意。例子就像...

tableInit: function() {
        this.$wrap = $('#'+ this.options.baseId +'Wrap');
        this.$table = this.tableBuild();
        this.$wrap.append(this.$table);

        this.loadResults();
    },

tableBuild: function () {
        var $table = $('<table>');
        $table.append(this.tableHeadBuild());
        return $table;
    },

tableHeadBuild: function () {
        var self = this;
        var $thead = $('<thead>').addClass('thead-light');
        var $row = $('<tr>');
        $row.append('<th>');

        $.each(self.options.columns.active, function(key, params){
            var $cell = $('<th>');
            $cell.attr('id',params.id).text(params.lang);
            $row.append($cell);
        });

        $thead.append($row);

        return $thead;
    },

应该将tableBuild和tableHeadBuild设计为保证出色的线性工作的承诺吗?我们何时真正需要诺言? (肯定会在异步ajax调用上)

tableInit: function() {
    ...
    this.tableBuild().then(function(table){
        self.$wrap.append(this.$table);
        self.loadResults();
    });
    ... 
},

//or like...
tableInit: function() {
    ...
    this.$table = this.tableBuild()
    this.$table.promise().done(function(){
        self.$wrap.append(this.$table);
        self.loadResults();
    });
    ... 
},

我想请问一些不好的概念。谢谢!

0 个答案:

没有答案