我有一个反应本机应用程序,它使用很多提取请求。这些请求工作得很好,但是我现在试图将所有获取请求移到一个文件中,然后将它们导入到我的类中。

问题:我不知道如何正确执行此操作。基本上,我可以从类中调用fetch方法,但是我不知道如何基于成功或失败来使用它。参见示例:

import stuff...
import { FetchRequest } from ...

class Home extends Component {
    constructor(props) {
    ...
}

 _fetch() {
 FetchRequest();
 }

 _onSuccess() {
 alert('success!');
 }

 _onFailure() {
 alert('failure!');
 }

 render() {
   return <Button onPress={this._fetch} />
  }
}


FetchRequest看起来像这样:

import { Url } from ...

export const FetchRequest = function () {
    fetch(Url)
        .then((response) => response.json())
        .then((responseJson) => {
            if (responseJson.status == 'success') {
                return 'success';
            }
            else {
                return 'failure';
            }
        })
        .catch((error) => {
           alert('Error!');
  });
};


如您所见,我可以轻松触发警报,还可以返回不知道如何使用的字符串。基本上,如果FetchRequest成功,我想调用_onSuccess方法;如果FetchRequest不成功,我想调用_onFailure方法。有没有办法做到这一点?

最佳答案

您可以通过将onSuccess和onFailure回调发送到FetchRequest函数来实现。

更改FetchRequest,如下所示:

import { Url } from ...

export const FetchRequest = function (_onSuccess, _onFailure) {
    fetch(Url)
        .then((response) => response.json())
        .then((responseJson) => {
            if (responseJson.status == 'success') {
                _onSuccess(responseJson);
            }
            else {
                _onFailure(responseJson);
            }
        })
        .catch((error) => {
           alert('Error!');
  });
};


您现在可以将其用作:

import stuff...
import { FetchRequest } from ...

class Home extends Component {
    constructor(props) {
    ...
}

 _fetch() {
 FetchRequest(this._onSuccess, this._onFailure);
 }

 _onSuccess(responseJson) {
 // Do something with the response
 alert('success!');
 }

 _onFailure(responseJson) {
 // Show the failed result
 alert('failure!');
 }

 render() {
   return <Button onPress={this._fetch} />
  }
}

关于javascript - 导入提取请求?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48488393/

10-11 05:42