2017-08-02 57 views
0

正在使用PouchDB版本5.2.1和nodejs版本0.10.26。最近我遇到了一個問題,在一個實例中,在我的兩個不同的PouchDB實例中,推複製工作正常,但在其他實例中,推複製未發生。 我進一步深入瞭解庫,我發現在文件pouchdb/lib/index.js中調用名爲startNextBatch()的函數。在函數內部,我們檢查的條件PouchDB推送複製不會推送新文檔

if (returnValue.cancelled || currentBatch) { 
     return; 
    } 

在成功場景則currentBatch是不確定的,因此代碼didnt返回回推發生,但在故障情況下則currentBatch定義和回報率爲called.The文件currentBatch變量中存在的是之前被推送到服務器的文檔,但由於其他問題而無法同步,並且它們的檢查點也無法更新,因此currentBatch變量未被清除。

我的問題是:

1)將它有什麼樣的影響,如果我的評論從代碼返回。

2)爲什麼推複製因爲定義了變量currentBatch而停止。

回答

0

經過一些進一步的調試後,我發現複製已經完全停止,狀態碼503未知數據庫錯誤。發生這種情況是因爲我的同步網關存在問題,並且某些文檔需要時間才能同步回來,因此編寫檢查點會拋出503未知錯誤(我不完全確定爲什麼檢查點會因爲某些文檔已同步而被其他文檔同步,時間)。 PouchDB庫完全中止複製,之後不會發生推送。

1)如果我評論返回,當前文檔將被推送,但由於複製被中止將不會保存檢查點。

2)推複製沒有停止,因爲currentBatch已定義。 currentBatch被定義,因爲複製不會發生。