Как использовать async и ожидать в gmail API для чтения сообщений - PullRequest
0 голосов
/ 21 ноября 2018

Я попытался использовать async / await вместо обратного вызова для чтения Gmail

Вот фрагмент кода

const {google} = require('googleapis');
async function getRecentMessageBody(auth) {
    const gmail = google.gmail({version: 'v1', auth});
    try{
       const messageId = await gmail.users.messages.list({
           userId: 'me',
           labelIds: 'INBOX',
           maxResults: 1
        });
      const message = await gmail.users.messages.get({
           userId: 'me',
           id: messageId.data.messages[0].id,
           format : 'full'
      });
      const value = base64url.decode(message.data.payload.body.data);
      console.log(messageId);
     //return value ;
   }
   catch(error) {
     console.log('Error occurs while reading mail :'+ error);
     throw error;
   }
}

Но идентификатор сообщения не определен

, тогда как еслия использую

gmail.users.labels.list({
    userId: 'me',
}, (err, res) => {
   if (err) return console.log('The API returned an error: ' + err);
   const labels = res.data.labels;
   if (labels.length) {
      console.log('Labels:');
      labels.forEach((label) => {
        console.log(`- ${label.name}`);
      });
   } else {
      console.log('No labels found.');
   }
});

как решить проблему ??

1 Ответ

0 голосов
/ 13 декабря 2018

используйте promisfy для преобразования обратного вызова в обещания

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