使用React Native返回fetch()undefined

问题描述:

我正在创建一个登录脚本,该脚本应该将responseData返回给调用类。问题是,我一直不明确的返回结果。如果我控制台记录responseData它显示正常。我注意到的一件事是,未定义有时出现在控制台中的控制台日志responseData之前。使用React Native返回fetch()undefined

module.exports = { 

    loginUser: function(emailAddress = "", password = "") { 

     var url= "URL_HERE"; 

     console.log(url); 

     fetch(url, {method: "GET"}) 
      .then((response) => response.json()) 
      .then((responseData) => 
     { 

      console.log(responseData); 
      return responseData; 


     }) 
     .done(() => { 

     }); 

    }, 

    otherMethod: function() {} 

} 

这里的函数是如何调用

var dataLogin = require('../../data/login.js'); 
var result = dataLogin.loginUser(this.state.formInputEmail, this.state.formInputPassword); 
+0

的[我如何返回从一个异步调用的响应?]可能的复制(HTTPS:/ /stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) –

+1

将回调方法传递给loginUser方法,并在获取响应时调用该方法。 –

我怀疑你的意思是loginUser的返回值()的一个例子。它不会返回任何东西。这是传递给.then()的内部lambda返回的内容。

尝试恢复从loginUser()整个取-承诺,然后用loginUser作为一个承诺:

... 
return fetch(... 
... 
loginUser().then(responseData => useResponseDataForSomething(responseData)