javascript - javascript导出可重用函数
问题描述
我正在为有很多 ajax 请求的人构建这个应用程序。我正在使用Q库进行承诺处理,我发现我的很多请求都完全相同:
export function createAppointment(data) {
return Q($.ajax({
type: 'POST',
url: 'api/appointments',
data: data,
contentType: 'application/json; charset=utf-8',
dataType: 'json'
}));
}
export function availableAppointments(data) {
return Q($.ajax({
type: 'POST',
url: 'api/appointments/available',
data: data,
contentType: 'application/json; charset=utf-8',
dataType: 'json'
}));
}
我想做的是定义一个可以调用的函数,该函数接受 ajax 选项,但会执行承诺。我希望它将选项作为可以覆盖的默认值。
例如,就我而言,那里的选项如下所示:
{
type: 'POST',
data: data,
contentType: 'application/json; charset=utf-8',
dataType: 'json'
}
我唯一需要覆盖的是url。有人可以帮我弄这个吗?
解决方案
您可以使用Object.assign
自定义值修补包含默认值的对象。
由于 URL 每次都会更改,因此我已将其作为不同的参数添加到签名中。
function performRequest(url, data, options) {
return Q($.ajax(Object.assign(
{
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json'
},
options,
{
url: url,
data: data,
}
)));
}
在这里,data
并且url
将始终覆盖options
.
推荐阅读
- asterisk - 如何为所有呼叫添加 SipAddHeader?
- three.js - 水平动画相机three.js
- javascript - 在 React-Redux 中抓取并显示单个 JSON 对象
- azure - 使用 Azure DevOps 部署 Azure Functions 时出现验证错误
- sql - 获取数据库中每个用户的最新状态更新
- reactjs - React js和chart js饼图类型
- java - Java Swing 标签中的彩色表情符号
- amazon-web-services - 从 s3 存储桶中获取具有相同前缀的多个对象
- python-3.x - 为什么我的 for 循环不工作,但我的 while 循环是?
- sql - 如何在 Pyspark 中将 ArrayType 的列转换为 Dictionary