我有一大堆我正在使用的异步函数,我有一个奇怪的问题.
我的代码,工作,看起来像:
async mainAsyncFunc (Metadata) { let files = Metadata.map(data => this.anotherAsyncFunc(data.url)); return Promise.all(files); }
anotherAsyncFunc函数如下所示:
async anotherAsyncFunc (url) { return await axios({ url,}).then(res => res.data) .catch(err => { throw err; }); }
当我尝试将更多数据附加到第一个函数(mainAsyncFunc)返回的内容时,我的问题出现了.我的想法是在地图中自然地做到这一点,当所有的说完成后,修改它看起来像:
async mainAsyncFunc (Metadata) { files = Metadata.map(data => { return new Promise((resolve) => { let file = this.anotherAsyncFunc(data.download_url); let fileName = data.name; resolve({ file,fileName }); }); }); return Promise.all(files); }
如果不清楚,我正常地获取文件,并向其附加一个fileName,然后重新解析该对象.
出于某种原因,这将返回一个挂起的Promise,而我希望它等待它们被完成,然后作为一个完整的文件和一个对象的名称返回.任何帮助了解我做错了什么都将非常感激.