Timer模块

目录

 

timer(定时器)

首先看类

1.Immediate 类   

2.Timeout 类 

3. util.promisify()

2.填坑

1.经过util.promisify的那些函数,已经不能再返回immediate类.

2.关于hasref()

3.关于如何使用刷新功能


timer(定时器)

首先看类

1.Immediate 类   

此对象在内部创建,并从 setImmediate() 返回。 它可以传给 clearImmediate() 以取消计划的操作。

2.Timeout 类 

  此对象在内部创建,并从 setTimeout() 和 setInterval() 返回。 它可以传给 clearTimeout()  或   clearInterval() 以取消计划的操作。

 

3. util.promisify()

传入一个遵循常见的错误优先的回调风格的函数(即以 (err, value) => ... 回调作为最后一个参数),并返回一个返回 promise 的版本。

const util = require('util');
const fs = require('fs');

const stat = util.promisify(fs.stat);
console.log(fs.stat,stat)
stat('./').then((value) => {
    console.log(value)
});



const setImmediatePromise = util.promisify(setImmediate);

setImmediatePromise('.').then((value) => {
    console.log(value)
});

那里面的点是一个路径....我不知道他到底找的是那个总之返回的是promise类型的函数,这个函数可以直接运行,还是照平常运行,只不过在其后面可以连接.之所以可以连接是因为setImmediate也是一个有返回值得是一个promise值.
 

Promise { <pending> }
num
num
num
Promise { <pending> }
Promise { '1' }
Promise { <pending> }

2.填坑

1.经过util.promisify的那些函数,已经不能再返回immediate类.

const util = require('util');
const setImmediatePromise = util.promisify(setImmediate);

setImmediatePromise('foobar').then((value) => {
    // value === 'foobar' (传值是可选的)
    // 在所有 I/O 回调之后执行。
});





var timer1 = setImmediate(function(){
    clearImmediate(timer1)
    console.log("1"+timer1.ref()+'2')
})

console.log(timer1.ref())

他的方式都是从timer1 来获得一个immediate的返回值,然后 你可以在外面或者在里面根据你的需求进行操作.

2.关于hasref()

 



var timer1 = setImmediate(function(){
    
    console.log("1"+timer1.hasRef())
    //clearImmediate(timer1);
    //console.log("1"+timer1.ref()+'2');


})




var timer1 = setInterval(function(){
    // timer1.ref();
    console.log(2+timer1.hasRef())
    //clearImmediate(timer1);
    //console.log("1"+timer1.ref()+'2');


},1000)

//console.log(timer1.ref());


var timer2 = setImmediate(function(){

    console.log("1."+timer2.hasRef())
    //clearImmediate(timer1);
    //console.log("1"+timer1.ref()+'2');


})





var timer1 = setTimeout(function(){
    // timer1.ref();
    console.log("2."+timer1.hasRef())
    //clearImmediate(timer1);
    //console.log("1"+timer1.ref()+'2');



},1000)

//console.log(timer1.ref());

Timerout类hasref是true的.

 

3.关于如何使用刷新功能

var timer1 = setTimeout(function(){
  
    console.log("2."+timer1.hasRef())


    timer1.refresh()


},1000)

那就这样了,同步和异步的调用都讲了,如果有问题,请留言.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值