我是when.js
javascript库的新手,但是我熟悉C#中的异步编程。这就是为什么我觉得这段代码很笨拙:
filters.doFilter('filter1name', reqAndPosts).then(function(filter1) {
filters.doFilter('filter2name', filter1).then(function(filter2) {
filters.doFilter('filter3name', filter2).then(function (posts) {
renderView(posts);
});
});
return filter1;
});
我基本上希望依次调用三个方法,并将每个方法的输出通过管道传递给下一个方法。无论如何,我是否可以将这段代码重构为更“类似于序列”的代码-即摆脱嵌套?我觉得这里的
when
框架缺少一些东西。我做的不好,对吧? 最佳答案
由于doFilter
返回了承诺,我们可以做
filters.doFilter('filter1name', reqAndPosts)
.then(function(filter1) {
return filters.doFilter('filter2name', filter1);
})
.then(function(filter2) {
return filters.doFilter('filter3name', filter2);
})
.then(renderView);