Eug*_*nyk 1 javascript asynchronous redux-saga
假设我有一个功能
function* request(url) {
return global.fetch(url).then(response =>
_.result(response, 'json'))
}
Run Code Online (Sandbox Code Playgroud)
这两个代码示例对我来说都很好
const {data} = yield call(request, 'http://example.com/api');
yield put(actionSuccess(data));
Run Code Online (Sandbox Code Playgroud)
和
const {data} = yield request('http://example.com/api');
yield put(actionSuccess(data));
Run Code Online (Sandbox Code Playgroud)
因此是问题。将call效果用于返回promise的功能有什么好处?
使用的一些好处call():
call()通过直接提供返回值来模拟和其他效果。yield语句时才产生控制权(回到redux-saga中间件)。这些是可能发生取消的唯一点。A yield call()使redux-saga有机会在即将不再需要的呼叫之前取消任务。使用gen.return()生成器方法执行任务取消。[1] [2]yield它时,这是redux-saga中间件执行任何类型的调度其他任务的唯一机会。(不过,我不确定redux-saga的表现如何。)有关更多信息,我认为最好在redux-saga的Github上打开一个问题,直接询问维护者。
| 归档时间: |
|
| 查看次数: |
436 次 |
| 最近记录: |