Обещания календаря API Google

Я пытаюсь вставить кучу событий с помощью Google API Calendar и получить идентификаторы вставленных событий, но я не могу получить ответ. Я не знаю, что делаю не так.

Вот что я делаю:

GetEvents //fetchs the user events 
        .then(insertEvents)
        .catch(function (reason) {
            console.info(reason);
        });

function insertEvents(events) {

    var eventsToInsert = [];
    if (events.length) {
        for (evnt of events) {  //Here im creating an array of //"promises" that return the insert method of google API
            eventsToInsert.push(insertEvent(evnt.titulo, evnt.lugar, evnt.fechainicio, evnt.fechafin, evnt.tipologia,
                evnt.id))
        }
        console.info('Events ti insert');
        console.info(eventsToInsert);
        //And here im trying the return the resolved data by the all //promises, but it returns an empty array always
        Promise.all(eventsToInsert.map(function (eventToInsert) {
            return eventToInsert.execute(function (event) {
                console.info('event', event);
                 return event.id;
            });
        })).then(function (res) {
            console.info(res);
        });

    } 

}

заранее спасибо

Что возвращает insertEvent? Вы сказали, что «создаете массив обещаний», но позже вы используете метод execute для этих записей; У обещаний нет метода execute.

T.J. Crowder 07.05.2018 11:29

В обычном случае здесь не нужны две петли. Так что нам явно нужно больше знать о том, что вы делаете и чем занимаетесь.

T.J. Crowder 07.05.2018 11:31

Что такое events? Если это массив, ваш первый цикл с использованием for-in - это не совсем правильно. Тебе бы лучше с var eventsToInsert = events.map(function(evnt) { return ... });

T.J. Crowder 07.05.2018 11:31

Я сделал ошибку там, а также в for loop я неправильно указал имя переменной eventsToInsert вместо events. Функция insertEvent возвращает объект запроса API Google, и для выполнения вставки он должен быть выполнен.

hawks 07.05.2018 11:43

Воспользуйтесь ссылкой «изменить», чтобы исправить любые ошибки в вашем вопросе.

T.J. Crowder 07.05.2018 11:49

@ T.J. Crowder благодарит вас за ответы. Я хочу вставить n событий в календарь Google и дождаться его ответа, а затем выполнить другие действия. Но я не могу дождаться или получить ответ, потому что методы Google асинхронны.

hawks 07.05.2018 12:00

Мне удалось решить эту проблему. Оберните метод google api insert в обещание и разрешите его в методе execute.

hawks 07.05.2018 12:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
92
0

Другие вопросы по теме