如何解决格子链接 Javascript
我正在将 Plaid Link 和 Stripe 集成到一个向导表单流中(许多页面,每个页面上都有许多字段)。用户输入的所有信息都存储在全局变量“this.applicationservice.application.applicant”中。用户在此流程的中间点击支付验证,其中 Plaid 在调用 Plaid.create(plaidparameters).open() 后弹出一个 IFrame。当 Plaid 初始化时,它会擦除我的浏览器内存,并且“this.applicationservice.application.applicant”现在未定义。
调用 Plaid 初始化时如何避免丢失浏览器内存?
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();
}
);
解决方法
所以问题是 this
回调内的 onSuccess
范围没有扩展到回调之外。
我的一位在 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
对象继承其作用域。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。