Мокко / Чай - Тайм-аут, гарантирующий выполнение обещания - PullRequest
0 голосов
/ 25 ноября 2018

Есть несколько тысяч вопросов по этому вопросу, и я думаю, что я прочитал их все, но я все еще не понимаю, почему следующее не работает.

Локально этот код выполняется без проблем.При запуске на TravisCI - он завершается неудачно с гарантией, что done () называется ошибкой.

it('Function oLab.GetObjects & oLab.Deploy', (done) => {
    var l = new oLab('1')
    l.getObjects().then(function(data){
        console.log(data);
        expect(data.length).to.above(0);
        //There is a bunch of other code in here commented out since this alone doesn't work.  
    })
    .then(() => done(), done)
    .catch(function (err) {     }); // Not executed
});

Я знаю, что функция getObjects не работает:

this.getObjects = function () {
    console.log("oLab getObjects function");
    return getResources(this.id);
}

, которая вызывает getResources:

function getResources(labID){
    return db.any('select * from lab_resources where lab_id = ' + labID).then(function(data){
        var resources = [];
        //Modifies the resources and returns the list.  Logging this displays the correct data.  
        return resources;
    })
    .catch(function (err) {     }); // Not executed

}

Вопросы:

  1. Я прочитал этот блог и на его основе добавил (сделано) к своим функциям, поскольку, как мне кажется, я возвращаю обещание.Вернуть ли мне обещание, если оно вложено?IE я вызываю getObjects, за которым следует getResources.getResources возвращает запрос к БД, но внутри него - возвращаемое значение.Означает ли это, что я возвращаю обещание или значение вызывающей функции?Я думал, что это вернет обещание, так как обещание не будет выполнено немедленно.
  2. В getObjects я пытаюсь установить свойство oLab.Должен ли я установить это свойство в функции getObjects или вернуть его вызывающему методу, а затем изменить свойство oLab?

1 Ответ

0 голосов
/ 26 ноября 2018

Оказывается, что Travis CI не смог получить доступ к базе данных, которую я запрашивал, поэтому произошел сбой при настройке соединения с БД.

...