Skip to content

提供简单的方法帮助异步插入task和microtask。

Notifications You must be signed in to change notification settings

aooy/asyncHelper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

asyncHelper

asyncHelper提供简单的异步插入task和microtask。

引入

文件位于dist/asyncHelper.js,支持常用的模块标准。

//例如:
//CommonJS
var asyncHelper = require('path/to/asyncHelper.js');
//Browser globals
<script src="path/to/asyncHelper.js"></script>

task

asyncHelper.task(fn, option)

例子:

//生成一个task
var myTask = asyncHelper.task(function(name){
   console.log(name)
})

//异步插入一个task
myTask('task')

microtask

asyncHelper.mtask(fn, option)

例子:

//生成一个task
var myMicrotaskTask = asyncHelper.mtask(function(name){
   console.log(name)
})

//异步插入一个microtask
myMicrotaskTask('this is microtask')

Note

当没有提供microtask的api时,会回退成task。

option

asyncHelper.task和asyncHelper.mtask的第二个参数接受一个配置对象。

option的可选参数如下:

参数 类型 默认 描述
callMode String undefined first: 在一轮event loop中只有第一次调用会执行。 last: 在一轮event loop中只有最后一次调用会执行。
context Object 全局对象/undefined 调用函数的对象,如果不指定将会是全局对象或者undefined(严格模式)

例子:

//生成一个task
var option = {callMode: 'last'}
var myMicrotaskTask = asyncHelper.mtask(function(say){
   console.log(say)
}, option)

//不会执行
myMicrotaskTask('this is microtask')
myMicrotaskTask('this is microtask')
myMicrotaskTask('this is microtask')
//执行
myMicrotaskTask('last')

About

提供简单的方法帮助异步插入task和microtask。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published