我做了componentWillMount()异步。现在我可以使用await了setState。
这是示例代码:
componentWillMount = async() => {
const { location, fetchRooms } = this.props
await this.setState({ roomId: room && room.roomId ? room.roomId : 0 })
fetchRooms()
}
Run Code Online (Sandbox Code Playgroud)
所以这里的问题是this.setState回报承诺,因为我可以使用await它吗?
编辑
当我等待时,它将按顺序运行;1, 2, 3当我删除等待时,它将运行1, 3, 2?
componentWillMount = async() => {
const { location, fetchRooms } = this.props
console.log(1)
await this.setState({ roomId: room && room.roomId ? room.roomId : 0 } => {
console.log(2)
})
console.log(3)
fetchRooms()
}
Run Code Online (Sandbox Code Playgroud) PrivateRoute在我的react.js项目中集成HOC时,我完全陷入困境.
这是我的路线文件
import React, { Component } from "react";
import { Route, Redirect, Switch, BrowserRouter as Router } from 'react-router-dom';
import Dashboard from "../view/Dashboard/Dashboard";
import Login from "../view/Login/Login";
import Admin from "../view/UserManagement/Admin";
import cookie from 'react-cookies'
const PrivateRoute = ({ component, ...rest }) => {
const isAuthed = cookie.load('token')
console.log(isAuthed, 'dddddddddddddddddddd')
return (
<Route {...rest} exact
render = {(props) => (
isAuthed ? (
<div>
{React.createElement(component, props)}
</div>
) :
(
<Redirect
to={{
pathname: '/login',
state: { …Run Code Online (Sandbox Code Playgroud) 我正在使用带有环回的 mongodb,并且在成功连接后,我收到以下警告
Top-level use of w, wtimeout, j, and fsync is deprecated. Use writeConcern instead.
Run Code Online (Sandbox Code Playgroud)
环回版本:5.5.0
如何摆脱这个?请帮忙
我的nodejs文件中有代码,可以提供以下信息
host:"147.0.40.145"
method:"aes-256-cfb"
password:"9c359ad1ebeec200"
port:38473
Run Code Online (Sandbox Code Playgroud)
我需要使用以上信息,并希望通过它连接VPN。我使用下面的代码来提取上述信息。
const connectServer = (serverId) => {
const token = store('access_token')
httpOptions.Authorization = token.token_type+' '+token.access_token
return new Promise((resolve, reject) => {
const response = await axios.post(`${baseUrl}/servers/${serverId}/connect`, {'serverId':serverId},{headers: httpOptions})
console.log(response.data)
resolve(response.data)
})
}
Run Code Online (Sandbox Code Playgroud)
所以,我需要知道是否有可能使用nodejs到连接或创建 VPN?
先感谢您!!!
我正在研究盖茨比。我需要像以前使用 reactjs 一样返回隐私页面/链接。
<a onClick={() => this.props.history.goBack}>
<button type="button" className="close_tab">
<img src={Close} alt="" />
</button>
</a>
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用 gatsby 做到这一点?
我的文件中有这段代码,在socketio这里我可以socket简单地使用。
import _ from 'lodash'
import mongoose from 'mongoose'
exports.register = (server, options, next) => {
var io = require('socket.io')(server.listener)
io.on('connection', async(socket) => {
// here I can use socket.emit() and all
})
next()
}
exports.register.attributes = {
name: 'socket'
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要使用io套接字处理emit来自各种文件的事件,并且不想io.on('connection', async(socket) => {})每次都连接它。
我怎样才能做到这一点?
谢谢!!!
我正在套接字上聊天。这是我在nodejs文件中运行良好的套接字代码。
外部套接字io.emit工作正常,并向与之连接的所有用户发出消息conversationId。
但是socket.broadcast.emit我用来通知用户的(当用户使用应用程序时)会socket.broadcast.emit多次发出()事件。为什么会这样呢?我是否完全错过了套接字方法。
socket.on('sendMessage', async(action2) => {
try {
action2.author = socket.decoded.id
action2.readBy = [socket.decoded.id]
action2.deliveredTo = [socket.decoded.id]
const createMessage = await Message.create(action2)
const sender = await User.findOne({ _id: socket.decoded.id }, { firstName: 1 })
const memebers = //some api call to get members
const promises = members.map(async(member) => {
// socket for message
const socketNotification = {
// my object
}
console.log(socketNotification, 'socketNotifcication')
socket.broadcast.emit(`messageSocket${member.memberId}`, socketNotification)
})
await Promise.all(promises)
io.emit(action2.conversationId, messages) // …Run Code Online (Sandbox Code Playgroud) 我正在使用mongodb和nodejs。我已经在Atlas上托管了mongodb。
我的后端一直运行良好,但是现在有时会卡住,当我在mongodb地图集上看到分析数据时,它显示活动连接的最大数量达到100。
有人可以解释为什么会这样吗?我可以重新启动连接并将其设置为0吗?
@Stennie我用过猫鼬来连接数据库
这是我的配置文件
const mongooseOptions = {
useNewUrlParser: true,
autoReconnect: true,
poolSize: 25,
connectTimeoutMS: 30000,
socketTimeoutMS: 30000
}
exports.register = (server, options, next) => {
defaults = Hoek.applyToDefaults(defaults, options)
if (Mongoose.connection.readyState) {
return next()
}
if (!Mongoose.connection.readyState) {
server.log(`${process.env.NOED_ENV} server connecting to ${defaults.url} ${defaults.url}`)
return Mongoose.connect(defaults.url, mongooseOptions).then(() => {
return next() // call the next item in hapi bootstrap
})
}
}
Run Code Online (Sandbox Code Playgroud) 我的反应组件中有这张表。我需要应用onClick所有,<tr>但需要排除最后一列(<td>)。
可以这样做吗?
<tr
className="cursor-pointer"
key={activity._id}
onClick={() =>
activeTab === "active"
? this.setState({ activity, completeModal: true })
: this.setState({ activity, showModal: true })
}
>
<td>{moment(activity.date).format("MM/DD/YY h:mm a")}</td>
<td>{activity.manifestNumber}</td>
<td>
<NumberFormat
thousandSeparator={true}
displayType={"text"}
value={activity.grossWeight}
/>{" "}
lbs
</td>
<td>{activity.facility.name}</td>
</tr>
Run Code Online (Sandbox Code Playgroud) javascript ×8
node.js ×6
reactjs ×4
mongodb ×2
socket.io ×2
async-await ×1
chat ×1
database ×1
gatsby ×1
hapijs ×1
html ×1
html-table ×1
loopback4 ×1
loopbackjs ×1
messaging ×1
mongoose ×1
privoxy ×1
promise ×1
reach-router ×1
react-router ×1
replicaset ×1
ubuntu-16.04 ×1
vpn ×1