我有一个要调用的函数,它返回一个承诺,但是在被调用的函数中,我需要遍历一个项目数组。
我的代码如下:
var playSearchResults = handlerInput => {
let lJson = constants.RESPONSE;
lJson.document.mainTemplate.item.items = [];
let lResults =[];
let lVoArtistRecord;
return new Promise(function (resolve, reject) {
lResults.forEach(async function (voArtist) {
lVoArtistRecord = await getResponseAudio(...parms);
if (lVoArtistRecord.found) {
lJson.document.mainTemplate.item.items.push({
"type": constants.AUDIO_TYPE,
"source": lVoArtistRecord.url,
"filter": [
{
"type": "Trim",
"start": 0,
"end": 30000
},
{
"type": "FadeIn",
"duration": 2000
},
{
"type": "FadeOut",
"duration": 5000
}
]
});
}
console.log(`..returning response ${JSON.stringify(lJson)}`);
resolve(lJson);
});
}
所以我看到的是 console.log('.....returning response ... 发生在 for-each 循环完成之前,我没有得到在解析后我可以看到的返回数据。
我要做的是确保整个 for-each 循环完成并且解析将数据发送回调用函数。