0

我有一个要调用的函数,它返回一个承诺,但是在被调用的函数中,我需要遍历一个项目数组。

我的代码如下:

          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 循环完成并且解析将数据发送回调用函数。

4

0 回答 0