【发布时间】:2021-03-10 11:33:02
【问题描述】:
我正在使用node-vibrant api 来检索调色板,但即使我已将async-await 放入代码中,它似乎也为时已晚。
我在下面输入的 console.log 显示 modified->transformed->new data 肯定不会等待。
我不确定我遗漏了什么或意外添加了什么,因为我已经多次分解代码,这让我感到困惑。
if(artist == 'picasso'){
transformedData = await transformPage(data, artistObject)
}
export async function transformPage(pageData: PageData, artist: any){
pageData.components.forEach(async function(component){
if(component == 'header'){
await transformHeader(component.attributes, artist);
}
});
console.log('transformed');
return pageData;
}
function transformHeader(attributesFragment: any, artist: any) {
generateColourPalette(attributesFragment['container'], artist).then(modified => attributesFragment['container'] = modified);
console.log('modified');
return attributesFragment;
}
async function generateColourPalette(container: any, artist: any) {
const albumCover = artist['image']['url'];
const v = new Vibrant(albumCover);
const palette = (await v.getPalette()).Vibrant?.hex;
container['backgroundColour']= palette;
console.log('new container');
return container;
}
【问题讨论】:
标签: javascript typescript async-await