2016-03-08 57 views
0

我從角度調用Cordova插件,我必須在我的調用之間放置一定的延遲,以給出本機硬件初始化或執行任務的時間。

即使在他們返回成功響應之後,也應該給予時間。

的問題是一切,我立即給不管是什麼我嘗試

//初始化代碼移除它傷害@Fizzix眼睛。

現在是完美的,但不是時機...

simplePrint: function(text, startEnterLines, endEnterLines) { 
       var deferred = $q.defer(); 
       printer.open().then(
        $timeout(printer.init(), 500) 
       ).then(
        $timeout(printer.writeEnterLine(startEnterLines), 1000) 
       ).then(
        $timeout(printer.printText(text), 1200) 
       ).then(
        $timeout(printer.writeEnterLine(endEnterLines), 1300) 
       ).then(
        deferred.resolve($timeout(printer.closePrinter(), 3000)) 
       ); 
       return deferred.promise; 
      } 
+0

這傷害了我的眼睛 – Fizzix

+0

我很抱歉。我已刪除了有問題的代碼 – konzo

回答

2

一個簡單的例子,如何使用承諾鏈會,

$q.when(true).then(function(value) { 
    // Do work, return promise 
}).then(function(value) {   
    // Do work, return promise 
}).then(function(value) { 
    // Do work, return promise 
}).then(function(value) {   
    // Do work, return promise 
}, function(value) {   
    // Do work 
}); 

你應該閱讀有關鏈的承諾不破壞序列。
。 請找一些很好的例子。

+0

感謝我覺得我應該閱讀文檔..我是能夠正確複製的例子來獲取序列但時間仍然不工作.. – konzo

+0

很高興聽到。應該通過在我假設的每個級別將代碼放入$ timeout中來啓用計時。 – Aviro

+0

讓我更新問題,同時在文檔 – konzo