发表于: 2021-05-28 22:27:55
0 2125
今天完成的事情:了解登录页获取数据来进行跳转
明天计划的事情:请假一天;
后天计划:一定要搞出来 angular 的数据请求;
遇到的问题:请求数据没搞出来
收获:
JS知识:错误处理机制:
JavaScript 解析或运行时,一旦发生错误,引擎就会抛出一个错误对象。JavaScript 原生提供 Error 构造函数,所有抛出的错误都是这个构造函数的实例。
Error实例对象必须有message属性,表示出错时的提示信息,对Error实例还提供name和stack属性,分别表示错误的名称和错误的堆栈,但它们是非标准的,不是每种实现都有。
message:错误提示信息name:错误名称(非标准属性)
stack:错误的堆栈(非标准属性)
原生错误类型:
Error实例对象是最一般的错误类型,在它的基础上,JavaScript 还定义了以下其他的错误对象。
SyntaxError 对象:解析代码时发生的语法错误。
ReferenceError 对象:引用一个不存在的变量时发生的错误。
RangeError 对象:一个值超出有效范围时发生的错误。(数组长度为负数,Number对象的方法参数超出范围,以及函数堆栈超过最大值。)
TypeError 对象:变量或参数不是预期类型时发生的错误。(对字符串、布尔值、数值等原始类型的值使用new命令,就会抛出这种错误,因为new命令的参数应该是一个构造函数。)
URIError 对象:URI 相关函数的参数不正确时抛出的错误。(主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数。)查看学习资料
如何访问Http:
首先,需要导入 HttpClientModule 模块。
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
HttpClientModule
] })
export class IndexComponent {
constructor(private http: HttpClient) { }
}
user: Observable<User>;
getUser() { this.user = this.http.get<User>('/assets/data/user.json');
} // 这部分没搞明白
{{ user | async | json }}
三个简单的步骤,就是一个完整的HTTP请求步骤。
HttpInterceptor 接口
我们在不改变上面应用层面的代码下,允许我们把身份认证、错误处理、状态码处理问题给解决
只需要实现 HttpInterceptor 接口即可,而且只有一个 intercept 方法。
@Injectable()
export class JWTInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> { // doing }
}
intercept 方法有两个参数,它几乎所当下流行的中间件概念一般,req 表示当前请求数据(包括:url、参数、header等),next 表示调用下一个“中间件”。
评论