Цепочка функций Jquery / Javascript, нужны советы (синхронизация / асинхронность)? - PullRequest
0 голосов
/ 27 февраля 2019

Код работает с обещаниями необходимых частей, но у меня есть чувак в цепочке отдельных функций, работающих и возвращаемых объектов.Пример подобен ...

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();
    });
    ... 
},

Я думаю, у меня есть плохие понятия, пожалуйста, несколько советов.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...