2017-11-20 18 views
0

Google recommends using promisesですが、そのコード例はありません。online docsのコードを変更するとgmail apiが約束どおりに機能するように苦労しています。nodejs gmail apiは約束をサポートしていません

私が変更したすべては、以下の行ですが、私はエラー

VM677:5 Uncaught TypeError: gmail.users.messages.list(...).then is not a function

gmail.users.messages.list({ 
    auth: auth, 
    userId: 'me', 
    labelIds: 'Label_14' 
// }, function(err, response) { 
//  if (err) { 
//   console.log('The API returned an error: ' + err); 
//   return; 
//  } 
//  console.log(response); 
}) 
.then(response => { 
    console.log("success", response); 
}) 

examples of SO利用の約束の大半を取得するので、私はそれが可能であるべきだと思うが、私は何を見ることができません問題はです。本当に助けを歓迎します

+0

このライブラリは約束ベースのAPIを提供していないことは明らかです(ドキュメントとエラーメッセージから)。コールバックの代わりに約束を使うことができると思いますか? – RidgeA

+0

例へのリンクを追加しました。https://developers.google.com/api-client-library/javascript/features/promises –

+0

あなたは間違ったドキュメントを見ています。そのリンク(約束について)は、[クライアントサイド(ブラウザ)google jsライブラリ](https://developers.google.com/gmail/api/quickstart/js)を指します。あなたは[サーバー側 'googleapis'モジュール](https://developers.google.com/gmail/api/quickstart/nodejs)を使用しています。そのドキュメントは、それが約束を支持していないことを明確にしている。 – josh3736

答えて

0

googleapisモジュールは約束をサポートしていません。

このモジュールで約束を使用する場合は、util.promisifyを使用することを検討してください。

var list = util.promisify(gmail.users.messages.list); 

list({ 
    auth: auth, 
    userId: 'me', 
    labelIds: 'Label_14' 
}) 
.then(...); 
関連する問題