改进实现方法
当sleep中传入函数时，以函数的返回值作为sleep的数值
把函数的执行时间考虑进timeout时间计算，完全与settimeout的实现方案保持一致