Googleのメールボックス内のすべてのメッセージのリストを取得するためにgoogle apiを使用しています。 APIは、リストのページ付け、およびすべての呼び出し、それは次のページを返しますので、私は再帰的に呼び出す必要がありとされていますnode.jsコールバックと再帰
const fetch = (cb, next) => {
google.gmail('v1').users.messages.list({
auth: oauth2Client,
userId: 'me',
pageToken: next
}, cb)
}
const store = (err, result) => {
// do something with result and then
if (result.nextPageToken) {
fetch(store, result.nextPagetToken)
}
}
fetch(store)
、私はバストしないように再帰を避けるために、これを行うには良い方法がありますスタック?
fetch(store, result.nextPagetToken)
あなたが使用することができます:代わりの
'process.nextTick(、、result.nextPagetTokenをストアフェッチ);'ルックス私が探していたものとまったく同じです。テールコール再帰を使うのはちょっと怖いので、気付かずにいつかそれを壊すのは簡単すぎるだろう。ありがとう。 – 599644