首页
学习
活动
专区
圈层
工具
发布

Plaid
EN

Stack Overflow用户
提问于 2021-03-01 23:52:11
回答 1查看 171关注 0票数 0

我正在集成与格子链接和条带到一个向导表单流(许多页面上的每个页面上的许多字段)。用户输入的所有信息都存储在全局变量"this.applicationservice.application.applicant".中用户在此流程中间点击支付验证,其中Plaid在调用Plaid.create(plaidparameters).open()后弹出一个IFrame。当Plaid被初始化时,它会擦除我的浏览器内存,并且"this.applicationservice.application.applicant“现在是未定义的。

如何避免在调用Plaid初始化时丢失浏览器内存?

代码语言:javascript
复制
this.http.post('https://localhost:8080/v1/validateach').subscribe(
        response => {
      
          let plaidparameters = {
            token: response.linkToken,
            onSuccess: function(public_token, metadata) {  
             
             // Memory is wiped
             console.log(this.applicationservice.application)

            }
          };
          
          // Works Fine
          console.log(this.applicationservice.application) 

          Plaid.create(plaidparameters).open();
        
        }
      );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 11:09:53

所以问题是onSuccess回调中的this的作用域并没有扩展到回调之外。

我的一位同事在JavaScript上工作得更多,他提出了以下建议:

代码语言:javascript
复制
this.http.post('https://localhost:8080/v1/validateach').subscribe(
        response => {
          const onSuccess = (public_token, metadata) => { 
            console.log(this.applicationservice.application); 
          };
          let plaidparameters = {
            token: response.linkToken,
            onSuccess,
          };
          // Works Fine
          console.log(this.applicationservice.application) 
          Plaid.create(plaidparameters).open();
        }
      );

还补充道:实际上,在this.http.post调用之外定义回调函数可能会更好,这样它就不会从plaidparameters对象继承其作用域。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66425326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档