2017-05-01 24 views
0

我在使用request-reponse獲取數據並處理它之後試圖輸出語音時遇到了一些麻煩。無論出於什麼原因,回調函數都不會輸出文本。 console.log(提示)可以工作,但它的response.say(提示).shouldEndSession(false).send()不會。如果你有任何想法,將不勝感激。Alexa節點js(alexa-app-server)response.say不輸出語音

test.getNumberStatus(number, function(err, message) { 
    console.log("In callback outside if statement"); 
    if (err == null) { 
     console.log(message); 
     response.say(message).shouldEndSession(false).send(); 
    } else { 
     console.log("Error"); 
     rresponse.say(message).shouldEndSession(false).send(); 
    } 
    }); 

stopInfo.prototype.getStopStatus = function(stopNumber, callback) { 
    var options = { 
    method: 'GET', 
    uri: ENDPOINT + '?stopid=' + stopNumber + '&maxresults=1&format=json', 
    json: true 
}; 

requestPromise(options).then(function(stopStatusObject) { 
if (true) { // check if error from dublin bus 
    console.log(stopStatusObject); 

    var template = _.template('busstopinfo <%= error %>'); 
    var message = template({ 
     'error': 'test' 
    }); 
    callback(null, message); 
} 
}).catch(function(err) { 
var message = "I didn\'t have data for stop number " + stopNumber; 
callback(err, message); 
}); 
}; 
+0

我發現一個測試用例,當使用請求承諾它不工作,但如果我把它拿出來,我呢仍然不知道如何解決它 – user3408117

回答

0

我也有類似的情況,發現解決自動發送輸出,適用於同步而不是異步。把response.resolve加入你的問題函數中,看看在send()之前值是否設置爲true。如果這是你已經使用了諾言。我更正了我的迴歸功能名稱前面,下面的異步處理程序示例部分從here