var mycb = function mycb(arg) {
console.log(`in my cb!! arg:${arg}`);
return arg;
}
async function timercall(cb, arg, inteval) {
let p = new Promise((resolve, reject) => {
setTimeout(() => {
//先调用cb
let ret = cb(arg);
//返回
resolve({
callback: cb,
arg,
ret
});
}, inteval);
});
return p;
}
//循环sleep 2S 的方法:
async function loopedcall(times) {
var interval = 2000;
for (var i = 0; i < times; i++) {
var p = await timercall(mycb, i, interval);
console.log(`${i}: call: cbname: ${p.callback.name}, arg: ${p.arg}, ret: ${p.ret}`);
if (p.ret == 3) {
console.log(`${i}: call end, i will break`);
break;
}
}
}
loopedcall(6);
nodejs的sleep实现
最新推荐文章于 2021-03-09 08:01:00 发布