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
如上图所示,此时运行程序即可在控制台输出接口返回内容

相关文章
|
1月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
26 0
|
3月前
|
移动开发 JavaScript 前端开发
webgl学习笔记3_javascript的HTML DOM
webgl学习笔记3_javascript的HTML DOM
41 0
webgl学习笔记3_javascript的HTML DOM
|
3月前
|
JavaScript 前端开发 Java
webgl学习笔记2_javascript基础快速学习
webgl学习笔记2_javascript基础快速学习
32 0
|
3月前
|
前端开发 JavaScript API
JavaScript学习笔记(一)promise与async
JavaScript学习笔记(一)promise与async
|
3月前
|
存储 JavaScript
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
40 0
|
9月前
|
存储 JavaScript 前端开发
【js】函数概述学习笔记(8)
【js】函数概述学习笔记(8)
30 0
|
9月前
|
存储 JavaScript
【js】数组学习笔记(7-2)
【js】数组学习笔记(7-2)
50 0
|
9月前
|
JavaScript 索引
【js】数组学习笔记(7-1)
【js】数组学习笔记(7-1)
39 0
|
9月前
|
JavaScript 前端开发 Python
【js】学习笔记-流程控制结构(5)
【js】学习笔记-流程控制结构(5)
55 0
|
9月前
|
前端开发 JavaScript Python
javascript入门学习笔记打卡(2)
javascript入门学习笔记打卡(2)
32 0