节点Js回叫/答应/返回

时间:2019-02-23 02:25:14

标签: node.js callback return

我对这个节点js还是陌生的,经历了很多解释,尝试了许多解决方案,但仍然无法理解函数回调。

loc

<-结果-> Rb-v2已启动!!! 我们在仪表板中 {id:'23'} TypeError:dashboardfunc.productlist不是函数

问题是为什么很难返回结果,以及为什么调用函数,获取返回数据如此复杂。伴随着回调v / s承诺的处理(是的,我几乎阅读了所有帖子,但我的幼稚大脑无法处理它)

1 个答案:

答案 0 :(得分:0)

尝试以下小技巧:

  1. <FlatList data={this.state.mdata} renderItem={this.renderList} keyExtractor={(item, index) => `${index}`} horizontal={false} numColumns={2}/> 导出唯一的函数,但是import {Text, View, ScrollView, TouchableOpacity,StyleSheet,Dimensions,FlatList} from 'react-native'; import {Card}from 'react-native-elements'; import API from './axios'; const styles = StyleSheet.create({ image: { flex:1,width:'50%',height:'50%', alignItems: 'center', justifyContent: 'center', }, }) export default class ImageList extends React.Component { constructor(props) { super(props); this.state = { mloading: false, mdata: [], current_page: 1, merror: null, mhasMore: true } } componentDidMount() { this.getListOfPictures(); } render() { return ( <FlatList data={this.state.mdata} renderItem={this.renderList} keyExtractor={(item, index) => `${index}`} horizontal={false} numColumns={2}/> ) } /******************************************************************************** * getListOfPictures All pictures for dashboard ********************************************************************************/ getListOfPictures = () => { if (this.state.mloading) { return; } this.setState({ mloading: true }); API.get(`dashboard/all`) .then(res => { console.log("reco1m",res.data.recommendations[0]); const nextPictures= res.data.recommendations.map(data => ({ title: data.style, image_url: data.img, description: data.description, id: data.style })); console.log(nextPictures); this.setState({ mhasMore: true, mdata: [...this.state.mdata, ...nextPictures], mloading: false, current_page: this.state.current_page + 1}) }).catch(error => {this.setState({ merror:error, mloading: false });}); } isCloseToBottom({ layoutMeasurement, contentOffset, contentSize }) { return layoutMeasurement.height + contentOffset.y >= contentSize.height - 0; } renderList = () => { return ( this.state.mdata.map((u) => { return ( <View style={{flex: 0.5, height: 150, margin: 5}}> <TouchableOpacity key={u.id} > <Card featuredTitle={u.title} image={{ uri: u.image_url }} imageStyle={styles.image}> <View style={{ padding: 10 }}> <Text style={{ fontSize: 15}}>Description:</Text> <Text>{u.description}</Text> </View> </Card> </TouchableOpacity> </View> ); })) } } 尝试将其用作对象的属性。您需要以下两种导出方式之一:
admindashboard.js

或使用以下方法:

app.js
  1. 导入的函数调用中的参数丢失。尝试使用module.exports = { productlist }; 而不是提到的dashboardfunc().then

  2. dashboardfunc(data).then函数中未使用
  3. dashboardfunc.productlist().then回调。使用它从诺言中返回数据:resolve而不是productlist()

  4. 在错误处理方面保持一致。使用:

resolve(results);

代替:

return results;