fix cache fn bug
make map support async loading