Node.js Alexa:使用来自服务的响应进行响应(节点v2 SDK)

Node.js Alexa:使用来自服务的响应进行响应(节点v2 SDK),node.js,alexa-skills-kit,Node.js,Alexa Skills Kit,我在玩Alexa API。我想让Alexa回复从服务接收到的内容 不确定在哪里添加承诺。我试过了,但是Alexa说请求技能的响应有问题 const HelloWorldIntentHandler = { canHandle(handlerInput) { return handlerInput.requestEnvelope.request.type === 'IntentRequest' && handlerInput.reque

我在玩Alexa API。我想让Alexa回复从服务接收到的内容

不确定在哪里添加承诺。我试过了,但是Alexa说请求技能的响应有问题

const HelloWorldIntentHandler = {
    canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'IntentRequest'
            && handlerInput.requestEnvelope.request.intent.name === 'HelloWorldIntent';
    },
    handle(handlerInput) {

        MyService.facts().then(function(data) {

            const speechText = 'No facts';

            if (data) {
                speechText = 'random facts: '
                data.forEach(function (fact) {
                    speechText += fact;
                })
            }

            return handlerInput.responseBuilder
                .speak(speechText)
                .reprompt(speechText)
                .getResponse();

        }, function(err) {
            console.log(err);
        });

    }
};

不使用Promise的响应。这个例子怎么样:

async handle(handlerInput) {
    return await MyService.facts().then(function(data) {
        // other stuff
    });
}

你能解决这个问题吗?我也在为同样的事情苦苦挣扎。你有没有尝试过在resolve中包装你的响应生成器?这似乎是唯一一件在AWS中对异步调用始终有效的事情。