我以这种方式从我的服务器检索json数据:
const stream = Observable.fromPromise(fetch('http://...')).flatMap(response => response.json())
现在我想将一些http响应属性合并到返回的值中。
下面的代码实际上不起作用。属性似乎是合并到promise本身而不是它的值......
const stream = Observable.fromPromise(fetch('http://...')).flatMap(response => {
const data = response.json()
return {
...data,
responseStatus: {
code: response.code,
text: response.text,
}
}
)
有些事我不明白..
答案 0 :(得分:0)
.json()
回复承诺! (感谢@ Felix-Kling提示)
const stream = Observable.fromPromise(fetch('http://...')).flatMap(response =>
Observable.from(response.json()).map(data => ({
...data,
responseStatus: {
code: response.status,
text: response.statusText,
},
}))
)
如果您有更好/其他答案,请添加评论
答案 1 :(得分:-1)
希望这会对你有所帮助,flatMap会对结果值的承诺变平,在下一个运算符中你会得到一个带有resp和json的元组
public DoubleValueWithUnit ToDoubleValueWithUnit()
{
return new DoubleValueWithUnit(Convert.ToDouble(Value), Unit);
}