我在 init 函数的范围之外声明了一些函数,并在 init 中用参数调用它们。我已经设置了一些控制台日志来跟踪和进度,以了解为什么我没有得到所需的结果,即使是错误的,并注意到它完全跳过了函数声明中的控制台日志。此外,我已经使用 Chrome 的调试器进入脚本,看到它一到达函数声明的头部,它就会跳到 init 中的下一行,而不会单步执行该函数。我的想法是这与必须使用回调有关,但我现在不确定。我已经测试了各种顺序,各种形式的函数声明,在 init 中声明它们到嵌套它们的声明之间。所有的结果都相同,给予或接受。这让我认为编译器认为这需要更多时间并立即跳到下一行。这是代码的相关部分。export default class Fundo extends FlexPlugin { constructor(PLUGIN_NAME) { super(PLUGIN_NAME); this.state = { token: "", cid: "", }; this.fetchToken = this.fetchToken.bind(this); this.fetchCustomer = this.fetchCustomer.bind(this); } fetchToken = info => { const http = require("https"); http.request(info, res => { var chunks = []; res.on("data", function(chunk) { chunks.push(chunk); }); res.on("end", () => { var body = Buffer.concat(chunks); var temp = JSON.parse(body); this.setState({ token: "Token " + temp.accessToken, }); console.log(this.token); }); }); }; fetchCustomer = (info2, password) => { const http = require("https"); http.request(info2, res => { var chunks = []; res.on("data", chunk => { chunks.push(chunk); }); res.on("end", () => { var body = Buffer.concat(chunks); var temp = JSON.parse(body); var temp2 = temp.items[0].customerId; this.setState({ cid: temp2, }); console.log(this.state.cid); }); }); }; init(flex, manager) { const options = { method: "GET", hostname: "hostnamegoeshere.com", headers: { //api header info }, }; const options2 = { method: "GET", hostname: "api.epicloansystems.com", headers: { //moreheaderinfo }, }; this.fetchToken(options); this.fetchCustomer(options2, this.state.token); flex.CRMContainer.defaultProps.uriCallback = cid => { console.log("hereD"); return `https://hostandpath.aspx?cid=${this.state.cid}`; }; }}
添加回答
举报
0/150
提交
取消