0
返回null我有以下功能功能在javascript
function calculateMFCC (wavFile, clipID) {
var audioData = loadAudioData(wavFile);
clipId = clipID;
passToWavReader(audioData);
}
功能loadAudioData(wavFile)應該使用Ajax加載wav文件,並返回結果作爲arraybuffer。這是它的樣子:
function loadAudioData(wavFile) {
var request = new XMLHttpRequest();
request.open('GET', wavFile, false);
//request.responseType = 'arraybuffer';
request.onload = function() {
var audioData = stringToArrayBuffer(request.response);
//passToWavReader(audioData);
return audioData;
}
request.send();
}
當我調試腳本,我看到,在loadAudioData(wavFile)函數中的變量audioData得到它應該得到的價值,但是當它返回到功能calculateMFCC(wavFile ,clipID)值audioData是未定義的,所以當它調用passToWavReader(audioData)時,腳本會中斷。所以,calculateMFCC的audioData變量不知道從loadAudioData得到了什麼值。
提示:哪個函數是你的return語句裏面的? – nnnnnn
使用承諾https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise –
異步中的** A **。您正在嘗試在呼叫返回之前使用該值。當你使用異步函數時,你必須以不同的方式思考,不管它們是否包含在*看起來*同步的其他函數中。 –