Мне удалось обернуть голову вокруг Promise
из fetch
, когда я пишу в один файл, но как только я начинаю разбивать код на несколько файлов, я застреваю. Это случалось пару раз, и я, должно быть, упустил или перенес какую-то концепцию.
Это в контексте node.js.
Я поместил свой код Promise в отдельный файл:
module.exports = function(url, branch) {
return fetch(url)
.then( res => res.json())
// here's the meat and potatoes.
.then( data => data => Object.keys(data.values).filter( value => value.source.branch === branch))
.catch( err => console.log(err))
};
Тогда в файле, которым я пользуюсь этой функцией:
const getDescription = require('./get_description');
getDescription(url, branch )
// This is where I want to use this value.
.then( desc => console.log(desc) )
.catch( err => console.log(err) );
И это просто выплевывает [Function]
.
Когда я складываю все это вместе, мне кажется, что я могу получить то, что мне нужно, но я также делаю что-то странное с тем, как вкладываю res.json().then
внутрь другого.
fetch(`https://api.bitbucket.org/2.0/repositories/${circle_project_username}/${circle_project_reponame}/pullrequests`, {headers: {Authorization: auth}})
.then((res) => {
res.json().then((data) => {
Object.keys(data.values).forEach(key => {
if (data.values[key].source.branch.name === branch) {
console.log(data.values[key].description);
}
})
})
})
.catch(res => console.log(res));