add async function support
Merge pull request #1 from Raynos/master

add async function support