Nest.js学习笔记(四)

简介: 本节使用装饰器封装axios的get请求

借助方法装饰器,我们可以获取到方法对应的函数,从而在不直接调用方法的情况下调用方法(对不起,我找不到更好的词了……)
完整代码:

import axios from 'axios'

// 装饰器工厂模式,允许用户传入自己的URL
const get = (url: string): MethodDecorator => {
  // 返回方法装饰器,第三个参数即是函数的定义
    return (target: Object, propertyKey: string | symbol, description: any) => {
        axios.get(url)
            .then((res) => {
        // 获取并调用函数
                const fnc = description.value
                fnc(res, {
                    status: 200,
                    success: true,
                })
            })
            .catch((e) => {
                const fnc = description.value
                fnc(e, {
                    status: 500,
                    success: false,
                })
            })
    }
}

class Controler {
  // 装饰器语法
    @get('https://api.apiopen.top/api/getHaoKanVideo')
    getList(res: any, sta: any) {
        console.log(res.data.result.list)
        console.log(sta)
    }
}

image.png
如上图所示,此时运行程序即可在控制台输出接口返回内容

相关文章
|
2月前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
1月前
|
JavaScript 前端开发
【干货分享】JavaScript学习笔记分享
【干货分享】JavaScript学习笔记分享
57 0
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
41 0
|
6月前
|
移动开发 JavaScript 前端开发
webgl学习笔记3_javascript的HTML DOM
webgl学习笔记3_javascript的HTML DOM
65 0
webgl学习笔记3_javascript的HTML DOM
|
6月前
|
JavaScript 前端开发 Java
webgl学习笔记2_javascript基础快速学习
webgl学习笔记2_javascript基础快速学习
51 0
|
6月前
|
前端开发 JavaScript API
JavaScript学习笔记(一)promise与async
JavaScript学习笔记(一)promise与async
|
6月前
|
存储 JavaScript
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
49 0
|
存储 JavaScript 前端开发
【js】函数概述学习笔记(8)
【js】函数概述学习笔记(8)
43 0
|
存储 JavaScript
【js】数组学习笔记(7-2)
【js】数组学习笔记(7-2)
66 0
下一篇
无影云桌面