2017-02-07 3 views
0

저는 Alexa Skill을 구축하는 데 필요한 기본 사항과 자바 스크립트를 배우고 있습니다. Amazon은 간단한 HelloWorld Alexa 기술을 제공했습니다. https://github.com/amzn/alexa-skills-kit-js/blob/master/samples/helloWorld/src/index.jsHelloWorld Alexa Skill - 실행 시작 위치는 어디입니까?

이 기능에 대한 질문이 두 가지 있습니다.

// Create the handler that responds to the Alexa Request. 
exports.handler = function (event, context) { 
    // Create an instance of the HelloWorld skill. 
    var helloWorld = new HelloWorld(); 
    helloWorld.execute(event, context); 
}; 
  1. 이 사용자가 알렉사 스킬을 시작할 때 코드의 실행이 시작되는가요? 이것이 HelloWorld 객체를 생성하고 사용자가 원하는 인 텐트를 시작하는 코드 부분이라고 생각됩니다.
  2. 사용자가 인 텐트를 호출 할 때마다이 부분이 실행됩니까? 예를 들어 Alexa Skill에서 Alexa에게 두 번 도움을 요청하면이 코드 블록이 두 번 호출됩니까? Java에서 주요 메소드가 있고 여전히 자바 스크립트를 파악하고 있습니다.

답변

1

예, exports.handler에 지정된 함수는 Java 주 루틴과 대략 동일합니다. 이 기능 내의 코드는 스킬이 호출 될 때마다 실행됩니다.

외부에있는 코드도 실행되지만 람다가 처음 초기화 될 때만 실행됩니다. 스킬이 너무 많이 사용되지 않으면 드물게 발생합니다. 아래의 예에서 : - 기능 만 코드를 의미 호출되고

var globalCount = 0; 
exports.handler = function (event, context) { 
    var localCount = 0; 
    // Create an instance of the HelloWorld skill. 
    var helloWorld = new HelloWorld(); 
    helloWorld.execute(event, context); 
    console.log("GlobalCount: " + globalCount + " LocalCount: " + localCount); 
    localCount++; 
    globalCount++; 
}; 

당신은 globalCount이 기술에 대한 각 호출로 증가 계속 것을 볼 수 있습니다. 한편 localCount는 매번 다시 초기화됩니다. 따라서 출력은 다음과 같습니다.

GlobalCount: 0 LocalCount: 0 
GlobalCount: 1 LocalCount: 0 
GlobalCount: 2 LocalCount: 0 

희망을 분명히하는 희망!

+0

당신은 math.random() 함수가 왜 붙어 있었는지에 대해 부지불식간에 풀 렸습니다. 건배! – brianfit