发表于: 2021-05-28 22:27:55

0 2125


今天完成的事情:了解登录页获取数据来进行跳转


明天计划的事情:请假一天;

后天计划:一定要搞出来 angular 的数据请求;


遇到的问题:请求数据没搞出来


收获:

JS知识:错误处理机制:

JavaScript 解析或运行时,一旦发生错误,引擎就会抛出一个错误对象。JavaScript 原生提供 Error 构造函数,所有抛出的错误都是这个构造函数的实例。

var err = new Error('出错了');
err.message // "出错了"

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()这六个函数。)
var err1 = new Error('出错了!');
var err2 = new RangeError('出错了,变量超出有效范围!');
var err3 = new TypeError('出错了,变量类型无效!');

err1.message // "出错了!"
err2.message // "出错了,变量超出有效范围!"
err3.message // "出错了,变量类型无效!"





查看学习资料 

如何访问Http:

首先,需要导入 HttpClientModule 模块。

import { HttpClientModule } from '@angular/common/http';

@NgModule({    

imports: [        

     HttpClientModule    

] })


然后,在组件类注入 HttpClient。

export class IndexComponent {    

    constructor(private http: HttpClient) { } 

}


最后,请求点击某个按钮发送一次GET请求。

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 表示调用下一个“中间件”。



返回列表 返回列表
评论

    分享到