小编Ric*_*chB的帖子

将分页请求转换为带有RxJ的Observable流

我有一个服务,它返回页面中的数据.对一个页面的响应包含有关如何查询下一页的详细信息.

我的方法是返回响应数据,然后如果有更多页面可用,则立即将延迟调用连接到相同的可观察序列.

function getPageFromServer(index) {
  // return dummy data for testcase
  return {nextpage:index+1, data:[1,2,3]};
}

function getPagedItems(index) {
  return Observable.return(getPageFromServer(index))
    .flatMap(function(response) {
      if (response.nextpage !== null) {
        return Observable.fromArray(response.data)
          .concat(Observable.defer(function() {return getPagedItems(response.nextpage);}));
      }

      return Observable.fromArray(response.data);
    });
}

getPagedItems(0).subscribe(
  function(item) {
    console.log(new Date(), item);
  },
  function(error) {
    console.log(error);
  }
)
Run Code Online (Sandbox Code Playgroud)

这一定是错误的方法,因为在2秒内你得到:

      throw e;
            ^
RangeError: Maximum call stack size exceeded
    at CompositeDisposablePrototype.dispose (/Users/me/node_modules/rx/dist/rx.all.js:654:51)
Run Code Online (Sandbox Code Playgroud)

分页的正确方法是什么?

javascript reactive-extensions-js rxjs

9
推荐指数
2
解决办法
3651
查看次数

在TQSQL脚本中使用双引号在SQLCMD中失败,但在SSMO中失败

通过sqlcmd执行以下脚本失败.但是,通过ssmo或SQL Server Management Studio执行它可以正常工作.

sqlcmd -S . -d test -i input.sql
Run Code Online (Sandbox Code Playgroud)

input.sql:

CREATE FUNCTION test()  
RETURNS  @t TABLE ("ID" INT)  
AS  
BEGIN  
 RETURN  
END  
Run Code Online (Sandbox Code Playgroud)

即使我将SQL Server Management Studio置于sqlcmd模式,它仍然会失败.这是一个问题,因为我们使用SSMS测试脚本,但使用SQLCMD进行部署.因此,我们只发现当我们尝试部署时,我们的代码不起作用.

为什么sqlcmd的行为如此?有没有办法把它关掉?

t-sql sql-server sqlcmd

5
推荐指数
1
解决办法
2756
查看次数