我订阅了一个函数myFunc()
。
如果使用X调用它,那么我希望它是来自服务器的正常HTTP响应。
如果没有X调用它,我希望它返回一个带有空数组的'假'http响应。
我该怎么做?我试过返回一个空的observable,但是subscribe永远不会触发。
myFunc(x) {
if (x) {
return this.http.get('myURL');
} else {
return Observable.from<Response>([])
}
}
答案 0 :(得分:1)
只需将Observable.from<Response>([])
替换为Observable.of<Response>([])
。
return Observable.of<Response>([])
这是因为Observable.from
迭代输入数组并发出其所有项目。由于数组为空,因此不会发出任何内容。 Observable.of
只需将您传递的内容作为参数传递,然后将其作为next
发送,然后发送complete
通知。
答案 1 :(得分:0)
您可以返回这样的内容,它会触发您的订阅:
return Observable.of<any>({ isSuccess: false });
在这里你可以传递任何对象。我刚刚创建了简单对象{ isSuccess: false }
答案 2 :(得分:0)
Observable.empty不会触发订阅的onNext函数,但会触发onComplete。你可以把一些逻辑放在那里。或者,您可以使用
return Observable.just(null);
返回带有空数据的Observable