函数获取值reader.onload

时间:2020-10-06 10:36:02

标签: javascript asynchronous filereader

我的 detectFaces 函数不返回填充变量, reader.onload 不提供值。我尝试了不同的方法,但是没有用,所以我决定与您联系。专家帮助

async function detectFaces(element){

    var 
        file = element.files[0],
        faceImage=[];

    if(file){
        try {
            var reader = new FileReader();
            reader.readAsDataURL(file);
            reader.onload = async function(faceImage) {
                url = reader.result;
                
                const inputImg = await faceapi.fetchImage(url)
                const displaySize = { width: inputImg.width, height: inputImg.height }
                //faceapi.matchDimensions(canvas, displaySize)
                const detections = await faceapi.detectAllFaces(inputImg, new faceapi.TinyFaceDetectorOptions());
                const resizedDetections = faceapi.resizeResults(detections, displaySize);
                faceImage = await faceapi.extractFaces(inputImg, resizedDetections).then(val => {
                    if (val[0]){
                        //displayExtractedFaces(faceImage);
                        console.log('Detect face');
                        return true;
                    }else{
                        //element.value = null;
                        console.log('No face');
                        return false;
                    }
                });

                console.log(faceImage);//return second get true
                return faceImage;
            }

            console.log(faceImage);//return first get []
            return faceImage;

        }catch(err) {
            console.error(err);
        }
    }
            
}

0 个答案:

没有答案
相关问题