我从角度调用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 :(得分: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
});
你应该阅读更多关于链接承诺而不破坏顺序的内容。
请找一些好的例子。