我正在打开一个文件以读取如下内容:
convertBlobToBase64(blob){
var convertPromise = new Promise(function(resolve, reject){
var fileReader = new FileReader();
fileReader.onload = function() {
var dataUrl = this.result;
var base64 = dataUrl.split(',')[1];
resolve(base64);
};
fileReader.readAsDataURL(blob);
});
return convertPromise;
}
然后调用此函数,并在解析时传递结果数据:
myFunction(audioFile){
var to64 = this.convertBlobToBase64(audioFile);
to64.then(function(base64Val){
var nextPromise = postCall();
nextPromise.then(//stuff);
return nextPromise;
});
return to64;
}
然而,当我调用myFunction时,它会立即返回一个已解析的承诺,其中包括来自
convertBlobToBase64
,而不是应该等待的未解决的承诺
nextPromise
正如所料。
相反,myFunction的。然后立即调用,由于没有正确的数据而失败。我是否误解了承诺功能?