bugfix on using sale callback function in async waterfall