猿问

执行过程中跳过的函数;打回来?

我在 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}`;

    };

  }

}


当年话下
浏览 126回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答