一、异步工作
process.nextTick():
回调会在当前操作完成后立即执行,但在事件循环进入下一个阶段之前。它是最先执行的。
Promise.then():
回调会在 microtask 队列中执行,通常是在当前操作完成后,但在事件循环进入下一个阶段之前。它比 setImmediate() 早执行。
setImmediate():
回调会在事件循环的 check 阶段执行,这是在当前 tick 结束后,在下一个 tick 的 check 阶段。它比 setTimeout(fn, 0) 早执行。
setTimeout(fn, 0):
回调会在事件循环的 timers 阶段执行,通常是在当前 tick 结束后,在下一个 tick 的 timers 阶段。它是最后执行的。
二、文件操作
r+:
以可读写的方式打开文件,文件必须存在。如果文件不存在,则抛出异常。该模式会进行字符编码和换行符处理。
w+
以可读写的方式打开文件,如果文件存在,则清空文件内容,从头开始写;如果文件不存在,则创建新文件。该模式会进行字符编码和换行符处理。
a
以追加的方式打开文件,如果文件存在,写入的数据会被加到文件末尾,不会覆盖原有内容;如果文件不存在,则创建新文件。该模式不会进行字符编码和换行符处理。
a+:
以可读写的方式打开文件,如果文件存在,写入的数据会被加到文件末尾,不会覆盖原有内容;如果文件不存在,则创建新文件。该模式不会进行字符编码和换行符处理。