简介
proxymise是一个前端开发的npm包,它可以帮助我们更好地处理异步函数的数据,让我们写出更加简洁和可读性更高的代码。
安装
proxymise可以通过npm进行安装,执行以下命令即可:
npm install proxymise
使用
proxymise提供了两种使用方式,分别是基本用法和高级用法。下面我们分别介绍这两种用法。
基本用法
首先让我们看一下一个异步函数的例子:
-- -------------------- ---- ------- -------- --------- - ------ --- --------------- -- - ------------- -- - --------- ----- ----- ------- ---- ---- -- -- -- ----- -- -
这是一个获取数据的异步函数,返回一个Promise对象。现在我们要对它的返回值进行处理。
使用then
我们可以使用Promise的then方法对它的返回值进行处理:
getData().then(data => { console.log(data.name) })
这里我们只是简单地输出了返回值中的name属性。但是,当异步函数中的数据非常复杂时,这样的写法会变得非常冗长和难以维护。
使用proxymise
这时候就可以使用proxymise来简化我们的代码:
const proxymise = require('proxymise') const data = proxymise(getData)() console.log(data.name)
我们先引入proxymise包,并将异步函数传入proxymise函数中。然后我们调用proxymise返回的函数,它会执行我们传入的异步函数并返回一个代理对象,这个对象中的属性值会自动更新为异步函数的返回值。
这样我们就可以直接通过代理对象访问异步函数的返回值了,并且不需要关心异步函数返回的是什么类型的数据。
高级用法
如果我们的异步函数返回的是一个对象或者数组,我们可能还需要进一步地处理。
过滤器filter
proxymise提供了一个filter方法,能够让我们对异步函数的返回值做一些特殊处理。
我们先来看一个返回数组的异步函数:
-- -------------------- ---- ------- -------- --------- - ------ --- --------------- -- - ------------- -- - --------- ------ ----- ------- ---- ---- ---- ------ ----- ------- ---- ---- ---- ------ ----- ------- ---- ---- --- -- -- ----- -- -
这个函数返回的是一个对象数组,现在我们要对它进行过滤,只保留性别为男的数据。
我们可以这样来使用filter方法:
const proxymise = require('proxymise') const list = proxymise(getList)().filter(item => item.gender === '男') console.log(list)
我们首先调用proxymise函数,并使用展开运算符(...)将返回值中的每个项目展开为独立的对象。然后我们通过filter方法对这些对象进行过滤,只保留gender属性为'男'的项目。
你还可以传递更多参数给filter方法,例如限制返回的数量:
const list = proxymise(getList)().filter((item, index) => item.gender === '男', {limit: 1})
这样返回的就是第一个性别为男的项目了。
映射器map
还可以使用map方法来对异步函数返回值的每个元素进行映射。
const proxymise = require('proxymise') const list = proxymise(getList)().map(item => item.name) console.log(list)
这里我们使用map方法对列表中的每个对象进行映射,只保留name属性。输出的就是一个name组成的数组了。
总结
到这里,我们已经了解了如何使用npm包proxymise来处理异步函数的返回值,并通过一个简单的示例来演示了它的使用方法。如需了解更多,建议到官方文档中查阅。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/80240