1.JavaScript 中的异步机制
JavaScript 中的异步机制可以分为以下几种:
回调函数 的方式,使用回调函数的方式有一个缺点是,多个回调函
数嵌套的时候会造成回调函数地狱,上下两层的回调函数间的代码耦
合度太高,不利于代码的可维护。
Promise 的方式,使用 Promise 的方式可以将嵌套的回调函数作为
链式调用。但是使用这种方法,有时会造成多个 then 的链式调用,
可能会造成代码的语义不够明确。
generator 的方式,它可以在函数的执行过程中,将函数的执行权转
移出去,在函数外部还可以将执行权转移回来。当遇到异步函数执行
的时候,将函数执行权转移出去,当异步函数执行完毕时再将执行权
给转移回来。因此在 generator 内部对于异步操作的方式,可以以
同步的顺序来书写。使用这种方式需要考虑的问题是何时将函数的控
制权转移回来,因此需要有一个自动执行 generator 的机制,比如
说 co 模块等方式来实现 generator 的自动执行。
async 函数 的方式,async 函数是 generator 和 promise 实现的
一个自动执行的语法糖,它内部自带执行器,当函数内部执行到一个
await 语句的时候,如果语句返回一个 promise 对象,那么函数将
会等待 promise 对象的状态变为 resolve 后再继续向下执行。因此
可以将异步逻辑,转化为同步的顺序来书写,并且这个函数可以自动
执行。
2.http状态码:
1xx(临时响应)
表示临时响应并需要请求者继续执行操作的状态代码
2xx (成功)
表示成功处理了请求的状态码。
3xx (重定向)表示需要进一步操作完成请求
4xx(请求错误)
表示请求可能出错,妨碍了服务器的处理
5xx(服务器错误)
表示服务器在尝试处理请求时发生内部错误,这些错误可能是服务器本身的错误,而不是请求出错。
常见的状态码有:
200 :获取数据成功
201 :成功请求并且创建了新的资源
301 :永久移动,请求的网页已永久移动到新位置。 服务器返回此响应时,会自动将请求者转到新位置。
302 :临时移动,服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
304 :未修改,自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
404 :请求的网页不存在
500 :服务器内部错误,服务器遇到错误,无法完成请求。
503 :服务不可用,服务器目前无法使用(由于超载或停机维护),通常只是暂时状态。