gpt4 book ai didi

javascript - data 参数如何与此函数配合使用?

转载 作者:行者123 更新时间:2023-12-02 22:09:25 25 4
gpt4 key购买 nike

我想将此代码修改为 typescript ,因为我不知道如何为该项目创建类型定义文件(@types)

jsHue Repo

问题来了,我看到有一个方法,例如(setLightState),它接受 ID 并调用网络请求。

但在文档中,它还为 HTTP Body 请求传递了另一个参数。

在文档中:

user.setLightState(3, { bri: 128 })

所以我想知道 js 库中的第二个参数来自哪里。

setLightState()的函数,根据我的理解setLightState,接收一个方法和id然后返回url函数

setLightState: _parametrize(_put, id => `${_lightUrl(id)}/state`)

_参数化函数让我很困惑

var _parametrize = (method, url) => (p, ...rest) => method(url(p), ...rest);

最佳答案

您会发现这令人困惑,这并不奇怪。这段代码过于抽象,变量名也很糟糕。

让我们尝试通过撤消一些抽象来理解 setLightState
以下四行代码都具有相同的结果(只是更加硬编码):

setLightState: _parametrize(_put, id =>${_lightUrl(id)}/state)

setLightState: (p, ...rest) => _put(${_lightUrl(p)}/state, ...rest)

setLightState: (p, ...rest) => (_requestJson.bind(null, 'PUT'))(${_lightUrl(p)}/state, .. .rest)

setLightState: (p, ...rest) => _requestJson('PUT',${_lightUrl(p)}/state, ...rest)

因此,当您调用 setLightState(3, { bri: 128 }) 时,{ bri: 128 } 会转到 ...rest 最终成为传递给 _requestJson 函数的 data 参数。

希望对您有所帮助。

关于javascript - data 参数如何与此函数配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59606444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com