Javascript Promise.then不仅仅是服务器上的函数错误
我正在本地运行以下代码,该代码运行正常,但在服务器上出现此错误: 那不是一个函数Javascript Promise.then不仅仅是服务器上的函数错误,javascript,angular,promise,es6-promise,Javascript,Angular,Promise,Es6 Promise,我正在本地运行以下代码,该代码运行正常,但在服务器上出现此错误: 那不是一个函数 .getDocument返回的对象不是承诺,但它有一个名为promise 所以 let promise; if (this.fileUrl) { promise = this.pdfJS.getDocument(this.fileUrl).promise; } else if (this.base64FileData) { const pdfData = atob(this.base64FileDa
.getDocument
返回的对象不是承诺,但它有一个名为promise
所以
let promise;
if (this.fileUrl) {
promise = this.pdfJS.getDocument(this.fileUrl).promise;
} else if (this.base64FileData) {
const pdfData = atob(this.base64FileData);
promise = this.pdfJS.getDocument({ data: pdfData }).promise;
} else {
promise = Promise.reject('invalid state');
// this will be handled by `this._onDocumentLoadError.bind(this)`
}
console.log('pretty');
console.log(promise);
promise.then(function (docObj) {
console.log('promistest');
console.log(docObj);
this._loadingEnd();
this.renderPages(docObj);
}, this._onDocumentLoadError.bind(this));
最简单的调试步骤是查看
console.log(promise)是什么代码>输出您可以添加else promise=promise.reject(“无效状态”)
然后让处理此问题。\u onDocumentLoadError
处理错误,这意味着它不是承诺,因此没有.then
方法-尝试promise.promise.then
,因为pdfJS.getDocument
返回一个具有promise
属性的对象,如所示(不过,我刚刚意识到,无论您使用什么,这可能都不是正确的文档)-什么是this.pdfJS
以及this.pdfJS.getDocument
返回什么?好吧,很酷,那么现在问题完全无关了?我建议你试着看看有什么问题,然后问一个新问题,因为这个问题现在已经解决了。我已经添加了一个答案,因为这可能会让其他人在未来感到困惑
let promise;
if (this.fileUrl) {
promise = this.pdfJS.getDocument(this.fileUrl).promise;
} else if (this.base64FileData) {
const pdfData = atob(this.base64FileData);
promise = this.pdfJS.getDocument({ data: pdfData }).promise;
} else {
promise = Promise.reject('invalid state');
// this will be handled by `this._onDocumentLoadError.bind(this)`
}
console.log('pretty');
console.log(promise);
promise.then(function (docObj) {
console.log('promistest');
console.log(docObj);
this._loadingEnd();
this.renderPages(docObj);
}, this._onDocumentLoadError.bind(this));