首页 > 解决方案 > 使用订阅处理 HTTP 请求

问题描述

我有一个提供者使用call()我用于http.post()请求的方法。我的目标是call()在检查对象是否包含permission_denyerror已经在call(). 同样,如果没有连接到服务器,应该已经在方法内部处理了call()。当 JSON 通过上述任何检查时,我只想返回组件。但我不知道,我该如何处理。这是我当前的状态,但我知道这不能.subscribe()在组件中使用。

任何组件

buttonTest(){ 
   let params = new URLSearchParams();
   this.dataService.call('clasABC, 'methodABC', params).subscribe((data) => {

      // Handle data

   });
}

提供者

public call(class, method, params: URLSearchParams) {

    params.set('c', class); 
    params.set('m', method);

    this.http.post(/* URI CALL */)
      .subscribe((data)=> {
         try {
            var jsonDataObject = JSON.parse(data.text());

            if (jsonDataObject.hasOwnProperty('permission_deny'))
            {

              // Show alert
              return  null;

            } else if (jsonDataObject.hasOwnProperty('error'))
            {

              // Show alert 
              return  null;
            }

            return jsonDataObject;

            } catch (e)
            {
                console.log(e);
            }

          }, (error) => {

            // Alert 

          })
      }

标签: angulartypescripthttpsubscribe

解决方案


推荐阅读