无法通过 Javascript 中的引用为变量赋值
Cannot assign value to variable by reference in Javascript
我想在 ProtoBuf 加载函数中为变量 IMLoginReq 赋值,但它不起作用,有人可以帮忙吗?
var IMLoginReq;
protobuf.load("./pb/IM.Login.proto", (err, root) => {
// Obtain a message type
IMLoginReq = root.lookup("IM.Login.IMLoginReq");
console.log(IMLoginReq);//<== is not undefined
});
console.log(IMLoginReq);//<== is undefined
load()
方法是异步的。因此,最后的 console.log 将在加载完成之前发生。不要试图将其视为过程逻辑,而事实并非如此,您应该在您拥有的成功方法中使用 IMLoginReq。
那是因为您试图在加载之前调用它。你应该有一个像成功这样的回调函数,所以它会在那里。
您还可以通过省略回调来使用承诺:
protobuf.load("awesome.proto")
.then(function(root) {
...
});
我想在 ProtoBuf 加载函数中为变量 IMLoginReq 赋值,但它不起作用,有人可以帮忙吗?
var IMLoginReq;
protobuf.load("./pb/IM.Login.proto", (err, root) => {
// Obtain a message type
IMLoginReq = root.lookup("IM.Login.IMLoginReq");
console.log(IMLoginReq);//<== is not undefined
});
console.log(IMLoginReq);//<== is undefined
load()
方法是异步的。因此,最后的 console.log 将在加载完成之前发生。不要试图将其视为过程逻辑,而事实并非如此,您应该在您拥有的成功方法中使用 IMLoginReq。
那是因为您试图在加载之前调用它。你应该有一个像成功这样的回调函数,所以它会在那里。 您还可以通过省略回调来使用承诺:
protobuf.load("awesome.proto")
.then(function(root) {
...
});