收藏
回答

请尽快解决 rxjs/operators 无法构建的问题?

如果不能对 NPM 有良好支持,会大大影响开发人员的积极性。

回答关注问题邀请回答
收藏

2 个回答

  • CN-Tower
    CN-Tower
    03-31

    不防用rxjs-mp,在小程序中优雅的使用rxjs。

    vscode中还有rxjs的语法提示: https://www.npmjs.com/package/rxjs-mp

    const Rx = require('rxjs-mp');
    /**
     * Request method
     * @param {string} url 
     * @param {any} data 
     * @param {'GET'|'POST'|'PUT'|'DELETE'} method
     * @param {{header?: object}} options 
     */
    function request(url, data = {}, method = "GET", { header }={}) {
      return new Rx.Observable(ob => {
        const requestTask = wx.request({
          url, data, method,
          header: {
            ...(header || {})
            'Token': wx.getStorageSync('token')
          },
          success: res => {
            if (res.statusCode == 200) {
              ob.next(res);
              ob.complete();
            } else {
              ob.error(res);
            }
          },
          fail: err => {
            console.error(err);
            ob.error(err);
          }
        });
        return () => requestTask.abort();
      });
    }
    
    /**
     * GET method
     * @param {string} url 
     * @param {{header?: object}} options 
     */
    function get(url, options) {
      return request(url, null, 'GET', options);
    }
    
    // 调用请求
    const sub = get('htts://some-api-url').pipe(
      Rx.operators.map(res => res && res.data || {})
    ).subscribe(res => {
      console.log(res);
    }, err => {
      console.error(err);
    });
    
    // 取消请求
    setTimeout(() => {
      sub.unsubscribe();
    }, 1000);
    


    03-31
    有用
    回复
  • Cooper
    Cooper
    2020-03-28

    具体是什么业务需要用到这个呢

    2020-03-28
    有用
    回复 1
    • jjw
      jjw
      2020-03-28
      rxjs 这么常用的库,不能良好支持是不应该的
      2020-03-28
      回复
登录 后发表内容
问题标签