Я работаю на API, через который я должен иметь возможность добавить список пользователей в JIRA наблюдателей (так я говорю с JIRA REST API)Node.js: ждать ответ от асинхронного вызова
Вот функция, чтобы сделать это:
for (var i = 0; i < votes.totalValue; i++) {
var voter = {
user : votes.rawVoteData[i].user,
value : votes.rawVoteData[i].value,
email : votes.rawVoteData[i].email,
fname : votes.rawVoteData[i].fname,
lname : votes.rawVoteData[i].fname
};
// Add these users as watchers to the Jira
jira.jira.addWatcher(issueId, voter.user, function(err, result){
// TODO: Return to callback
rep++;
console.log('user='+voter.user);
console.log(result);
});
}
объект голосов имеет список пользователей, указанный выше. Теперь проблема заключается в том, что когда я выполняю эту функцию, из-за асинхронности узла, цикл for выполняется полностью, тогда все асинхронные вызовы сразу запускаются. (что не работает для меня, так как JIRa REST API, похоже, не поддерживает это)
Я хочу изменить приведенный выше код, чтобы я сделал вызов функции addWatcher для пользователя по одному за раз & make следующий вызов addWAtcher для следующего пользователя, только если предыдущий асинхронный вызов вернулся (т. е. перейти к следующему асинхронному вызову один за другим для каждого пользователя, а не полностью отключить все вызовы в addwatcher).
я делаю это?
Просьба сообщить,
спасибо!
«Не похоже, чтобы поддержать это». - Вы могли бы уточнить, вы получаете сообщение об ошибке или он просто не работает? –
он просто не работает. В jira rest api есть конечная точка addwatcher, которая возвращает код состояния 204 при добавлении наблюдателя. Когда я использую вышеуказанный код, я получаю 204 для всех пользователей, но когда я иду на jira и проверить, добавлены ли пользователи, я вижу только последнего добавленного пользователя. – Rookie