Javascript 如何正确地从函数内的数据返回值
我是javascript新手,并开始从中学习惊人的东西。如下面的代码所示,我如何能够在Javascript 如何正确地从函数内的数据返回值,javascript,reactjs,function,return,Javascript,Reactjs,Function,Return,我是javascript新手,并开始从中学习惊人的东西。如下面的代码所示,我如何能够在getData()内返回index的值。然后(data=>{getData函数具有json响应值 subPatternStart() { getData().then(data => { var patternStart = 1525750500000; var index = 0; for (var i = 0; i < data.length; i++) {
getData()内返回index
的值。然后(data=>{
getData
函数具有json响应值
subPatternStart() {
getData().then(data => {
var patternStart = 1525750500000;
var index = 0;
for (var i = 0; i < data.length; i++) {
if ( patternStart >= data[i].time && patternStart < data[i+1].time ) {
//...somecode
}
}
console.log("Index:" , index);
})
}
在这段简单的代码中,它在render方法中返回精确的值,我想这样做
subPatternStart() {
var patternStart = 1;
return patternStart;
}
您应该使用从
getData
获得的值设置组件的状态。然后React可以自行更新组件并呈现页面。例如
import React from 'react';
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
index: 0
}
}
subPatternStart() {
getData().then(data => {
var patternStart = 1525750500000;
var index = 0;
for (var i = 0; i < data.length; i++) {
if (patternStart >= data[i].time && patternStart < data[i + 1].time) {
//...somecode
}
}
this.setState({
index: index
});
})
}
render() {
index = this.state.index
}
}
从“React”导入React;
类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
索引:0
}
}
子模式开始(){
getData()。然后(数据=>{
var patternStart=1525750500000;
var指数=0;
对于(变量i=0;i=data[i]。时间和&patternStart
函数子模式start
调用异步函数getData
,因此您需要使用回调
或承诺
来获取数据
1.使用回调
子模式启动(callbackFunction){
getData()。然后(数据=>{
var patternStart=1525750500000;
var指数=0;
对于(变量i=0;i=data[i]。时间和&patternStart{index=i})
}
2.使用承诺
子模式启动(callbackFunction){
var承诺=新承诺(解决=>{
getData()。然后(数据=>{
var patternStart=1525750500000;
var指数=0;
对于(变量i=0;i=data[i]。时间和&patternStart
感谢您的回复。当我记录此.setState({index:index})时,它未定义。我在this.state.index中得到一个空结果,我接受这个答案,因为这是我使用的答案。作为新手,与其他解决方案相比,这很容易实现。我可能需要学习更多来实现另一个答案。感谢Ron!修改了呈现值。编辑的一个是我使用的有效的解决方案。t非常感谢您的回复,我确实为您编写了代码,它给了我TypeError:callbackFunction不是一个函数
。async
是否有特殊的依赖关系?当我得到未捕获的引用时,错误:对于async/await-on-react的实现,没有定义再生时间
,您可以阅读此用法 转换运行时
plugin以删除registratorrumtime
error如何记录函数结果?这似乎不正确console.log(this.subPatternStart((I)=>{index=I}))
import React from 'react';
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
index: 0
}
}
subPatternStart() {
getData().then(data => {
var patternStart = 1525750500000;
var index = 0;
for (var i = 0; i < data.length; i++) {
if (patternStart >= data[i].time && patternStart < data[i + 1].time) {
//...somecode
}
}
this.setState({
index: index
});
})
}
render() {
index = this.state.index
}
}
subPatternStart(callbackFunction) {
getData().then(data => {
var patternStart = 1525750500000;
var index = 0;
for (var i = 0; i < data.length; i++) {
if (patternStart >= data[i].time && patternStart < data[i + 1].time) {
//...somecode
}
}
console.log("Index:", index);
callbackFunction(index);
})
}
// calling the function
render() {
var index;
this.subPatternStart((i) => { index = i })
}
subPatternStart(callbackFunction) {
var promise = new Promise(resolve => {
getData().then(data => {
var patternStart = 1525750500000;
var index = 0;
for (var i = 0; i < data.length; i++) {
if (patternStart >= data[i].time && patternStart < data[i + 1].time) {
//...somecode
}
}
console.log("Index:", index);
resolve(index);
})
})
return promise;
}
// calling the function
async render() {
index = await this.subPatternStart();
}