Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在函数外传递引用_Javascript_Asynchronous_React Native_Promise - Fatal编程技术网

Javascript 在函数外传递引用

Javascript 在函数外传递引用,javascript,asynchronous,react-native,promise,Javascript,Asynchronous,React Native,Promise,我正在使用。有两个函数,server.start()用于启动服务器,server.stop()用于停止服务器。 从函数启动服务器是在\u startServer()中完成的。但是,如何停止服务器(\u stopServer())?我不知道如何将对服务器的引用正确地传递到\u stopServer() 导出默认类Foo扩展组件{ _startServer=()=>{ server.start() 。然后((本地服务器)=>{ 这是我的国家({ 是的, localServer:localServer

我正在使用。有两个函数,
server.start()
用于启动服务器,
server.stop()
用于停止服务器。 从函数启动服务器是在
\u startServer()
中完成的。但是,如何停止服务器(
\u stopServer()
)?我不知道如何将对服务器的引用正确地传递到
\u stopServer()

导出默认类Foo扩展组件{
_startServer=()=>{
server.start()
。然后((本地服务器)=>{
这是我的国家({
是的,
localServer:localServer
})
});
}
_stopServer=(refToServer)=>{
refToServer.stop();
}
...
render(){
返回(
这是。_startServer()}/>
这个。_stopServer(??}/>
)
}
}

通过此调用将localServer分配给组件的状态:

this.setState({
               serverRunning: true,
               localServer: localServer
           })
因此,您可以使用
this.state.localServer
获取服务器,并使用
this.state.localServer.stop()停止服务器

大概是这样的:

_stopServer = () => {
          this.state.localServer.stop();
     }

通过以下调用将localServer分配给组件的状态:

this.setState({
               serverRunning: true,
               localServer: localServer
           })
因此,您可以使用
this.state.localServer
获取服务器,并使用
this.state.localServer.stop()停止服务器

大概是这样的:

_stopServer = () => {
          this.state.localServer.stop();
     }

如果您可以简单地使用
server.stop()
?@dfsq,那么为什么需要传递任何东西呢?因为我在
\u startServer()中初始化了
server
。当我试图在
\u stopServer()
中访问
server
时,
server
超出范围(?),因此我无法调用
server.stop()
然后将其存储为实例属性。@dfsq您的意思是
this.setState({server:server})
?不,我是指实例属性
this.server=…
。如果您可以简单地使用
server.stop()
?@dfsq,那么为什么需要传递任何东西呢?因为我在
中初始化了
server
。当我试图在
\u stopServer()
中访问
server
时,
server
超出范围(?),因此我无法调用
server.stop()
然后将其存储为实例属性。@dfsq您的意思是
this.setState({server:server})
?不,我是指实例属性
this.server=…