У меня есть скрипт node.js, который открывает контейнер Azure, снимает скриншоты страницы из разных стран и передает их в контейнер Azure. Проблема, с которой я столкнулась, - это если я столкнулся с ошибкой в потоковом процессе, она завершает оставшиеся скриншоты для данного идентификатора, а затем выходит из цепочки обещаний.Q цепочка обещаний существует цепочка обещаний после ошибки
Так что, если я столкнулся с ошибкой на Id 211006
, он завершает выполнение всех скриншотов, а затем выходит из потока. Это не продолжается.
Я очень новичок в том, как работают обещания и как они ловят ошибки, но я понимаю, что если, скажем, 211006
действительно встретит ошибку, скрипт завершит цепочку обещаний, а затем покажет мне какую-либо ошибку до работает .fin
- это не тот случай.
Может ли кто-нибудь помочь?
AzureService.createContainer()
.then(function() {
return ScreenshotService.getAllCountriesOfId('308572');
})
.then(function() {
return ScreenshotService.getAllCountriesOfId('211006');
})
.then(function() {
return ScreenshotService.getAllCountriesOfId('131408');
})
.then(function() {
return ScreenshotService.getAllCountriesOfId('131409');
})
.then(function() {
return ScreenshotService.getAllCountriesOfId('789927');
})
.then(function() {
return ScreenshotService.getAllCountriesOfId('211007');
})
.then(function() {
return ScreenshotService.getAllCountriesOfId('833116');
})
// Upload Log file into Azure storage
.fin(function() {
AzureService.init({
container: config.azure.storage.msft.CONTAINER.LOG,
account: config.azure.storage.msft.ACCOUNT,
key: config.azure.storage.msft.ACCESS_KEY,
file: config.file.log,
isLogFile: true
});
log.info('Utility: Uploading log file [ %s ] to Azure storage container [ %s ]', AzureService.file, AzureService.container);
return AzureService.uploadLocalFileToStorage()
.then(function() {
return util.deleteFile({fileName: AzureService.file, isLogFile: true});
})
.fail(function (err) {
log.info(err);
})
.done();
})
.fail(function (err) {
log.info(err);
})
.done();