code: function remainingWait(time) {
      // 距离上次debounced函数被调用的时间
      let timeSinceLastCall = time - lastCallTime;
  
      // 距离上次函数被执行的时间
  
      let timeSinceLastInvoke = time - lastInvokeTime;
  
      // 用 wait 减去 timeSinceLastCall 计算出下一次trailing的位置
  
      let result = wait - timeSinceLastCall;
      // 两种情况
      // 有maxing: 比较出下一次maxing和下一次trailing的最小值，作为下一次函数要执行的时间
      // 无maxing: 在下一次trailing时执行timerExpired
      return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
    }
docs: 剩余时间