Я использую код node.js для создания функции для загрузки изображения из репозитория и последующей загрузки в репозиторий B. Я хочу, чтобы все потоки завершились до того, как они будут продолжены с другими задачами. Я пробовал этот путь, но я не добился успеха. Пример: Когда я запустил его, он будет работать в getImage. Когда getImage не завершен, он будет проходить через A-> B-> C до тех пор, пока он не будет завершен, а затем он завершит getImage. Как я могу принудительно завершить все потоки до того, как они будут продолжены с другими задачами? Я хочу сказать, что getImage будет закончен перед запуском A-> B-> C.Как заставить весь поток сделать, прежде чем мы продолжим с другой задачей?
PS: Я использую pkgCloud для загрузки изображения в хранилище IBM Object Storage.
function parseImage(imgUrl){
var loopCondition = true;
while(loopCondition){
getImages(imgUrl,imgName);
Do task A
Do task B
Do task C
}
}
function getImages(imgUrl, imgName) {
//Download image from A repository
const https = require('https');
var imgSrc;
var downloadStream = https.get(imgUrl, function (response) {
// Upload image to B repository.
var uploadStream = storageClient.upload({container: 'images', remote: imgName});
uploadStream.on('error', function (error) {
console.log(error);
});
uploadStream.on('success', function (file) {
console.log("upload Stream>>>>>>>>>>>>>>>>>Done");
console.log(file.toJSON());
imgSrc = "https://...";
});
response.pipe(uploadStream);
});
downloadStream.on('error', function (error) {
console.log(error);
});
downloadStream.on('finish', function() {
console.log("download Stream>>>>>>>>>>>>>>>>>Done");
});
return imgSrc;
}
Какая функция определяет 'imgSrc'? 'uploadStream.on ('success''? – guest271314
См. [В чем разница между синхронным и асинхронным программированием (в узле.js)] (http://stackoverflow.com/questions/16336367/what-is-the-difference- между-синхронно-асинхронным программированием-в-узле) – guest271314