<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
p {
position: absolute;
}
</style>
</head>
<body>
<input type="file" onchange="changepic(this)"></div>
<img src="" alt="" id="img">
<!-- <p>213123123</p> -->
<script src="js/lib/jquery-1.11.1.min.js"></script>
<script>
function changepic(event) {
var reader = new FileReader();
var file = event.files[0];
if (file) {
var fileSize = file.size / (1024 * 1024);
// 限制文件大小
if (fileSize > 5) {
return;
}
// 限制文件类型
if (!(file.type == "image/png" || file.type == "image/jpeg" || file.type == "image/jpg")) {
return;
}
}
reader.readAsDataURL(file);//转化二进制流
// function onload() {
// var s, a;
// return new Promise((resolve, reject) => {
// reader.onload = function (e) {
// //图片路径设置为读取的图片
// document.getElementById("img").src = e.target.result;
// resolve(function () {
// s = 1 + 1;
// a = 2 + 2;
// return false
// })
// };
// })
// }
// async function uploadFailed() {
// var flag = await onload()
// console.log(flag);
// return flag
// }
// uploadFailed()
function onload() {
return new Promise((resolve, reject) => {
reader.onload = function (e) {
//图片路径设置为读取的图片
document.getElementById("img").src = e.target.result;
resolve(false) //这个是关键
};
})
}
async function uploadFailed() {
var flag = await onload()
return flag
}
uploadFailed()
}
</script>
</body>
</html>
关键是这个
function onload() {
return new Promise((resolve, reject) => {
reader.onload = function (e) {
//图片路径设置为读取的图片
document.getElementById("img").src = e.target.result;
resolve(false) //这个是关键
};
})
}
async function uploadFailed() {
var flag = await onload()
return flag
}
uploadFailed()
async异步 await 等待, 同步
在async 里面 使用 await , 不能同步里面用异步
async await 配合 new Promise 以及 resolve() 就可以达到return 的效果
这个是代码的关键
function onload() {
return new Promise((resolve, reject) => {
reader.onload = function (e) {
//图片路径设置为读取的图片
document.getElementById("img").src = e.target.result;
resolve(false) //这个是关键
};
})
}
async function uploadFailed() {
var flag = await onload()
return flag
}
uploadFailed()