js-data-http 中的find 方法似乎有一种特殊情况,如果item
为false则它将拒绝承诺,否则返回item
。我的问题是一些虚假值(0
, null
, ''
)是来自我的 API 的有效响应。
例如,如果我要求一个尚未设置的关系,那么 API 会以null
包装在 jsonapi 信封中的数据进行响应。这遵循用于获取空关系的jsonapi 规范:
{
"links": {
"self": "/articles/1/relationships/author",
"related": "/articles/1/author"
},
"data": null
}
我正在使用js-data-jsonapi库来帮助 js-data 和 jsonapi 相处。在该库中,DeSerializer解开 jsonapi 信封。此时 js-data 重新负责,解包后的数据null
是 find promise resolve 方法中的值,item
这会导致 js-data-http 拒绝 promise。
现在我正在利用js-data-jsonapi 中的一个特殊情况将空数据反序列化为一个数组,因为在 JS 数组中是真实的。但是我必须对 hasOne 关系的检测进行特殊处理,现在必须将空数组重新转换为 null。
这似乎是一种过于复杂的处理方式,我错过了更好的方法吗?
我的设置使用:
"angular": "1.5.8",
"js-data": "2.9.0",
"js-data-angular": "3.2.1",
"js-data-jsonapi": "0.0.0-alpha.21",