通过订阅处理HTTP请求

时间:2018-09-30 08:02:24

标签: angular typescript http subscribe

我有一个提供者,我使用的方法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 

          })
      }

0 个答案:

没有答案
相关问题