延迟执行for循环中的方法
目的: 打印全部订单,调用接口获取数据,需要隔三秒发送一次打印指令
用setInterval调用函数方法 关键在于要写成回调函数形式 ( () => {duang()},3000)
if (res.data.code == 200 && res.data.obj.content.length > 0) {
uni.showModal({
title: '提示',
content: '共' + res.data.obj.content.length + '笔订单,请确保打印纸张足够',
success: function(re) {
if (re.confirm) {
var k = 0;
var printTime = setInterval(() => {
duang()
}, 3000)
function duang() {
if (k < res.data.obj.content.length) {
_self.orderInfo = res.data.obj.content[k++];
_self.startPrint();
} else {
console.log('结束');
clearInterval(printTime);
}
}
}
}
});
}
在ts官网上看到的一种方法
//for循环延迟执行
for (var i = 0; i < 10; i++) {
(function (i) {
setTimeout(function () {
console.log(i);
}, 100 * i);
})(i);
}