即使在使用'then'后,Fetch也会返回promise而不是实际数据

时间:2016-08-18 15:16:58

标签: javascript react-native fetch react-android

我正在我的组件中进行一个简单的提取调用,看起来像这样

    var x = fetch(SOME_URL, SOME_POST_DATA)
             .then((response) => response.json())
             .then((responseJSON) => {return responseJSON});

    console.log(x);

调用成功执行,但控制台打印了promise而不是数据。我在这里缺少什么?

1 个答案:

答案 0 :(得分:11)

promises的工作方式意味着您需要处理responseJSON 处理程序then()内的var x = fetch(SOME_URL, SOME_POST_DATA) .then((response) => response.json()) .then((responseJSON) => { // do stuff with responseJSON here... console.log(responseJSON); }); 。由于请求的异步性,外部代码在promise解析时已经返回。

最初可能很难理解,但它与“传统”AJAX请求非常相似 - 您在回调中处理响应。

举个例子:

std::shared_ptr<SI::Program> m_program; // in class

m_program = std::make_unique<SI::Program>(); // in method

更多阅读:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise