Tag: 反应

如何使一个ASync函数等待,直到收集到所有的信息?

getGrades() { let grades = {}; this.state.courses.map((course) => { this.state.studentDetails.map((student) => { request.get(`http://localhost:8080/user/${student.id}/grades`).then((response) => { if (response) { response.body.map((grade) => { grades[`${student.id}_${course.id}_${grade.gradeType}`] = grade.grade; }); } }); }); }); this.setState({grades: grades}); } 我想这this.setState({grades: grades}); 只有在收集到所有信息时才被调用。 我怎样才能做到这一点?

Javascript – asynchronous等待vs承诺callback

我正在做一个代码更改将.then(func {})样式代码转换为asynchronous等待。 在我的例子中,从那里转换到asynchronous等待,消除了并行查询API的能力,并按请求完成的顺序处理它们,因为两个请求是相互独立的。 这是两个语法之间的有效区别,还是仅仅是将两个函数分解为两个单独的asynchronous函数将使它们并行运行的问题? 升级之前的示例代码: componentDidMount() { this.loadLists(); } loadLists() { console.log('start 1'); api.get('/url/1').then(function(r) { console.log('done 1', r.body); }); console.log('start 2'); api.get('/url/2').then(function(r) { console.log('done 2', r.body); }); } //OUTPUT //start 1 //start 2 //done 1 //done 2 升级后的示例代码: componentDidMount() { this.getLists(); } async getLists() { console.log('start 1'); var res = await api.get('/url/1'); console.log('done 1', res.body); […]

我有一个套接字IO连接问题

我正在反应js和使用套接字和expression来build立一个多人游戏 我得到这个错误: polling-xhr.js:264 GET https:// localhost:3000 / socket.io /?EIO = 3&transport = polling&t = LqjOuC2 net :: ERR_CONNECTION_CLOSED 我谷歌这个错误5倍,并调整我的import应用程序,套接字,快递和http, Server.js var app = require('express')(); var http = require('http').Server(app); const port = process.env.PORT || 3001; http.listen(port, ()=> {console.log("+++Express Server with Socket Running!!!")}) var io = require('socket.io').listen(http); …. …. 前端 import React, { Component } from 'react'; […]