我有一个这样的功能:
function sendRQ(url,filename){
new Promise(function (resolve, reject) {
console.log('111');
var request = new XMLHttpRequest();
request.timeout = 2000;
request.open('GET', url, true);
request.responseType = 'blob';
console.log('222');
request.onload = function (){
console.log('333');
let reader = new FileReader();
reader.readAsDataURL(request.response);
reader.onload = function (e) {
console.log('444');
var base = e.target.result;
resolve(base);
var arr = base.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type: mime});
};
console.log('555');
};
request.send();
console.log('666');
}).then(function (dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
console.log('777');
return new File([u8arr], filename, {type: mime});
}).then(function (file) {
console.log('888');
return file;
});}
我在每个级别中设置console.log以获得运行步骤的优先级。但是回声“ 222”后回声“ 666”。 我该如何解决?我定下诺言,但是不能正常工作!