This could cause a very deep stack except that we rely on the underlying _bytes() calls to either unwind the stack if they need to asynchronously wait for more data, or else to trampoline to avoid stack overflow.
function getHashEncodedPair(n) {
        getBytes(function(keyBuffer) {
          getBytes(function(valueBuffer, output) {
            object.value[keyBuffer.toString(encoding)] =
              raw ? valueBuffer : valueBuffer.toString(encoding);
            object.length++;
            next(n);
          });
        });
      }