CycleJS的新手,我试图从HTTP驱动程序读取一些数据,并在用户进行更改时写入。我有以下内容:
初始请求只是一个简单的GET。
const initialRequest$ = Observable.just({url: ...});
根据一些捕获的用户意图,我更新我的模型并创建(或尝试至少创建)一个PATCH请求来更新远程数据。
const patchRequests$ = intent$
.withLatestFrom(model$, (intent, model) => {
const payload = ... // get payload from model and intent
return {
url: `my/url/${target}`,
method: 'PATCH',
send: {
// payload...
},
};
});
然后我将这些流合并在一起:
const request$ = Observable.merge(initialRequest$, patchRequests$);
并将request$
返回给HTTP驱动程序。
我的初始请求通过很好,我获取HTTP源流中的数据。但补丁永远不会发射。
我可以使用以下内容订阅request$
:
request$.subscribe((req) => console.log(req));
我会看到我的初始请求和补丁请求全部记录到控制台。但是仍然没有发送补丁请求。
我在这里做错了什么?
感谢。
答案 0 :(得分:3)
将eager: true
作为请求对象的属性之一。否则,HTTP驱动程序会忽略在应用程序中没有相应响应$请求的请求。
这将在未来版本的Cycle.js中发生变化,但是,所有请求都会很急切,你不会看到这个问题。