2015-02-12 88 views
0

我正在構建一個Google Docs插件,並且正在嘗試從外部網站拉出一個PDF來解析(對於像頁數,文本內容等簡單的事情,doesn不需要對文檔進行可視化渲染)。但是,我將Javascript庫集成到我的項目中遇到了很多麻煩。帶有Google Apps腳本的PDF.js

據我所知,我將不得不做一些手動工作來刪除一些與瀏覽器相關的東西,比如DOM渲染或網絡連接。但是,這裏的錯誤是完全不相關的。

我已經嘗試手動將所有源文件複製到項目中(更改所需的路徑)using a "built" library I found online(就像我項目中的那一個文件)。但是,每當我保存我的項目時,我都會收到奇怪的語法錯誤 -

之後缺少名稱。運營商。 (線1120,文件 「PDF」)

這是在文件 「PDF」 線1120:

if (typeof globalScope.Promise.prototype.catch !== 'function') { 

這是相關的代碼塊:

if (typeof globalScope.Promise.resolve !== 'function') { 
    globalScope.Promise.resolve = function (value) { 
    return new globalScope.Promise(function (resolve) { resolve(value); }); 
    }; 
} 
if (typeof globalScope.Promise.reject !== 'function') { 
    globalScope.Promise.reject = function (reason) { 
    return new globalScope.Promise(function (resolve, reject) { 
     reject(reason); 
    }); 
    }; 
} 
if (typeof globalScope.Promise.prototype.catch !== 'function') { 
    globalScope.Promise.prototype.catch = function (onReject) { 
    return globalScope.Promise.prototype.then(undefined, onReject); 
    }; 
} 
return; 

然而,沒有語法錯誤,我可以在那裏看到

所以,真正的問題:

  • 似乎沒有成爲一個明顯的語法問題。如果有一個,我忽略了,那是什麼錯誤?
  • 否則,我怎樣才能找出這個問題的起源?這似乎是一個奇怪的,級聯的問題。

回答

0

因爲catch是JavaScript保留字Apps Script是嚴格的並且阻止它用作參數。

你的代碼是有效的,只是沒有嚴格的模式友好。

改爲使用globalScope.Promise.prototype['catch']