add try/catch block and callback to setItemAsync