FranckFreiburger / vue-pdf

vue.js pdf viewer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TypeError: Cannot read properties of undefined (reading 'catch')

syamsoul opened this issue · comments

vue file

<template>
    <div id="page_product_file_view" class="general-pages-1">
        <template v-for="i in numPages">
            <pdf
    			:key="i"
    			:src="pdf_src"
    			:page="i"
    			style="display: inline-block; width: 100%"
    		></pdf>
            <hr>
        </template>
    </div>
</template>
<script>
import pdf from 'vue-pdf'


export default {
    components:{
        pdf
    },
    data: () => ({
        pdf_src: null,
        numPages: undefined,
    }),
    mounted() {
        this.pdf_src = pdf.createLoadingTask(`${MAIN_URL}/file/view/${this.$route.params.hfilname}`);
        this.pdf_src.promise.then(pdf => {
			this.numPages = pdf.numPages;
		});
    },
    methods: {

    },
}
</script>

.
.

pdf file successfully displayed
image

.
.

but it produces lot of errors in console

TypeError: Cannot read properties of undefined (reading 'catch')
    at PDFJSWrapper.renderPage (app.js?id=b89a6ec318209e4c9370:1:670908)
    at o.resize (app.js?id=b89a6ec318209e4c9370:1:661909)
    at Ht (app.js?id=b89a6ec318209e4c9370:1:402599)
    at o.n (app.js?id=b89a6ec318209e4c9370:1:404333)
    at Ht (app.js?id=b89a6ec318209e4c9370:1:402599)
    at o.t.$emit (app.js?id=b89a6ec318209e4c9370:1:424764)
    at o.handler (app.js?id=b89a6ec318209e4c9370:1:659744)
    at pn.INkZ.pn.run (app.js?id=b89a6ec318209e4c9370:1:418869)
    at fn (app.js?id=b89a6ec318209e4c9370:1:416881)
    at Array.<anonymous> (app.js?id=b89a6ec318209e4c9370:1:403637)

cancel() is not returning a promise.

this.renderPage = function(rotate) {
			if ( pdfRender !== null ) {

				if ( canceling )
					return;
				canceling = true;
				pdfRender.cancel().catch(function(err) {
					emitEvent('error', err);
				});
				return;
			}
commented

Sorry for comments from my rebase commit... 🙏

use optional chaining there .
Like
await RecruiterDbModel.findOneAndUpdate(
{
_id: _id,
},
{
$set: recruiterUpdateObject,
},
)
.then(recruiter => {
recruiterObject = recruiter;
})
?.catch(err => {
Logger.error(err);
});

use optional chaining there . Like await RecruiterDbModel.findOneAndUpdate( { _id: _id, }, { $set: recruiterUpdateObject, }, ) .then(recruiter => { recruiterObject = recruiter; }) ?.catch(err => { Logger.error(err); });

worked for me , thanks for the answer

As this project seems to be abandoned, I created a fork which corrects this bug. The package can be found here:

https://www.npmjs.com/package/@teckel/vue-pdf