我正在我的组件中进行一个简单的提取调用,看起来像这样
var x = fetch(SOME_URL, SOME_POST_DATA)
.then((response) => response.json())
.then((responseJSON) => {return responseJSON});
console.log(x);
调用成功执行,但控制台打印了promise而不是数据。我在这里缺少什么?
答案 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