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));
我会看到我的初始请求和补丁请求全部记录到控制台。但补丁请求仍然从未发送。
我在这里做错了什么?
谢谢。
最佳答案
将eager: true
作为请求对象的属性之一。否则,HTTP 驱动程序会忽略应用程序中没有相应响应 $ 等待的请求。
这将在 Cycle.js 的 future 版本中发生变化,不过,所有请求都将是急切的,您不会看到这个问题。
关于CycleJS HTTP request$ 未触发请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438957/