0

私は Nodejs を初めて使用し、この問題を理解するのに苦労しています。配列に対して記述関数を実行しようとしましたが、メイン関数が終了した後に AWS 関数が実行されているようです。

主な機能は次のとおりです: (ACM ARN のリストをループして、ステータスを確認します)

var checkCertStatus = function(resolveObj){
    var promise = new Promise(function(resolve, reject){

        console.log('1');
        var retObj='';
        resolveObj.Items.forEach(function(element) {
            var certDescribeParams = {
                CertificateArn: element.sslCertId
            };
            console.log('2');
            acm.describeCertificate(certDescribeParams, function(err, data) {
                if(err) reject(new Error(err));
                else     {
                    console.log(data.Certificate.DomainName + ': ' + data.Certificate.Status);
                    retObj+=data;
                }
            });
        });
        console.log('3');
        resolve(retObj);
        return promise;
    })
}

デバッグ ログに基づいて、処理する必要がある項目が 2 つあると仮定すると、次のようになりました。

1
2
2
3
example.com: ISSUED
example2.com: ISSUED

基本的に、この結果をチェーン内の次の関数に渡す必要があります (promise などを使用して)。

4

1 に答える 1