我正在尝试通过使用JSON
连续创建HTTP requests
来构建Axios
文件。到目前为止,这是我已经完成的事情:
代码:
let getProjects = function() {
try {
return axios.get('https://app.asana.com/api/1.0/projects/')
} catch (error) {
console.error(error)
}
}
let getTasks = function(project) {
try {
return axios.get('https://app.asana.com/api/1.0/projects/'+project+'/tasks')
} catch (error) {
console.error(error)
}
}
let getattachments = function(task) {
try {
//return axios.get('https://app.asana.com/api/1.0/tasks/'+task+'/attachments').then(response => { return response } )
return axios.get('https://app.asana.com/api/1.0/tasks/'+task+'/attachments?opt_fields=download_url,view_url,permanent_url')
} catch (error) {
console.error(error)
}
}
function getAsanaData() {
return getProjects()
.then((result) => {
const projects = result.data.data;
const taskPromises = projects.map((project) => {
return getTasks(project.gid)
.then((task) => {
project.tasks = task.data.data;
});
});
return Promise.all(taskPromises)
.then(() => projects);
});
}
Promise.try(() => {
return getAsanaData();
}).then((result) => {
console.log(util.inspect(result, {showHidden: false, depth: null}))
//var asanaData = safeJsonStringify(result);
//fs.writeFile("thing.json", asanaData);
})
.catch(err=>console.log(err))
其他要求:
类似于在每个项目中创建一个数组属性并将其填充到项目的任务对象中,我需要:
后一种方法的最终结果无论如何都是目标。我只需要每个项目都具有其所有任务的附件。这些任务只是达到此目的的手段。
我多次尝试重写该代码,以达到预期效果。怎么做到呢?