Twilio Studio не перечисляет услуги

Я настраиваю приложение синхронизации с помощью библиотеки синхронизации Twilio. По какой-то причине ни один из методов REST API не работает. То есть я не могу получить какие-либо методы синхронизации для console.log () через функции времени выполнения.

Однако я могу использовать console.log () в виде обычного текста.

Вот мой код:

exports.handler = function(context, event, callback) {

    // 0. Init
    // const phoneNumber   = event.phoneNumber;
    const issueLimit    = 3; // CHANGE IF NEEDED
    const listName      = 'issues';
    const twilioClient  = context.getTwilioClient();


    // 1. List all  lists 
    twilioClient.sync.services(context.SYNC_SERVICE_SID)
       .syncLists
       .list({limit: 20})
       .then(syncLists => syncLists.forEach(s => console.log(s.sid)));


    // 2. return true if quota reached

    console.log("Got to here");


    // 3. return false
    callback(null, undefined);
};

Единственный исполняемый код - это 'console.log ("Попал сюда");'. Я также не получаю сообщений об ошибках.

Искренне приветствуются любые рекомендации.


person Shoko Designs    schedule 26.04.2019    source источник


Ответы (1)


Когда вы видите .then(), это обещание, и вы можете прочитать об этом подробнее здесь https://www.twilio.com/blog/2016/10/guide-to-javascript-promises.html

Другими словами, движок JavaScript переходит к вашим шагам 2., а затем 3., не дожидаясь завершения 1.. И поскольку вы вернетесь к шагу 3 с callback(null, undefined);, вы не увидите журналы.

Итак, вам нужно переместить callback() внутрь .then(), примерно так:

exports.handler = function (context, event, callback) {

    // 0. Init
    // const phoneNumber   = event.phoneNumber;
    const issueLimit = 3; // CHANGE IF NEEDED
    const listName = 'issues';
    const twilioClient = context.getTwilioClient();


    // 1. List all  lists 
    twilioClient.sync.services(context.SYNC_SERVICE_SID)
        .syncLists
        .list({ limit: 20 })
        .then(
            function (syncLists) {
                console.log("Got to here");
                syncLists.forEach(s => console.log(s.sid));
                callback(null, undefined);
            }
        );


};
person Alex Baban    schedule 27.04.2019
comment
Вы молодцы! Спасибо! - person Shoko Designs; 27.04.2019