Я потратил довольно много времени на устранение неполадок и, наконец, обнаружил, что разбиение на страницы @ google-cloud, похоже, нарушается при использовании обещаний bluebird. Это работает, если я отключаю bluebird, но так как в проекте широко используются функциональные возможности Bluebird Promise, удалить Bluebird будет сложно. Кто-нибудь знает, есть ли другой обходной путь? Или в какой модуль я должен отправить отчет об ошибке? (обратите внимание, что это происходит в любой из функций нумерации страниц, например monitoring.getDescriptors
)
global.Promise = require('bluebird');
const { PubSub } = require('@google-cloud/pubsub');
(async () => {
const keyFilename = 'lib/gcloud-auth.json';
const pubSub = new PubSub({ keyFilename });
console.log('topics:', await pubSub.getTopics().catch(e => e));
})();
Вывод:
topics GoogleError: Undefined response in pagination method callback.
at fetchNextPageToken (/opt/app/node_modules/google-gax/build/src/paginationCalls/pagedApiCaller.js:55:26)
at Http2CallStream.<anonymous> (/opt/app/node_modules/@grpc/grpc-js/build/src/client.js:93:17)
at Http2CallStream.emit (events.js:215:7)
at /opt/app/node_modules/@grpc/grpc-js/build/src/call-stream.js:97:22
at processTicksAndRejections (internal/process/task_queues.js:75:11)
From previous event:
at Paginator.run_ (/opt/app/node_modules/@google-cloud/pubsub/node_modules/@google-cloud/paginator/build/src/index.js:167:25)
at PubSub.Class.<computed> (/opt/app/node_modules/@google-cloud/pubsub/node_modules/@google-cloud/paginator/build/src/index.js:61:34)
at /opt/app/node_modules/@google-cloud/promisify/build/src/index.js:69:28
From previous event:
at PubSub.wrapper (/opt/app/node_modules/@google-cloud/promisify/build/src/index.js:54:16)
at /opt/app/lib/index.js:8:38
at Object.<anonymous> (/opt/app/lib/index.js:9:3)
at Module._compile (internal/modules/cjs/loader.js:956:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
at internal/main/run_main_module.js:17:11 {
note: 'Exception occurred in retry method that was not classified as transient'
}
Node 12.14.0
Alpine 3.11.2
@google-cloud/monitoring v1.7.0
@google-cloud/pubsub v1.2.0
google-gax v1.13.0
@grpc/grpc-js v0.6.15
bluebird v3.7.2