格子 Link Javascript
Plaid Link Javascript
我正在将 Plaid Link 和 Stripe 集成到一个向导表单流中(很多页面在每个页面上都有很多字段)。用户输入的所有信息都存储在一个全局变量“this.applicationservice.application.applicant”中。用户在此流程中间点击支付验证,Plaid 在调用 Plaid.create(plaidparameters).open() 后弹出一个 IFrame。初始化 Plaid 时,它会擦除我的浏览器内存,并且“this.applicationservice.application.applicant”现在未定义。
调用格子初始化时如何避免丢失浏览器内存?
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();
}
);
所以问题是 onSuccess
回调中 this
的范围没有扩展到回调之外。
我的一位在 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
对象继承其范围。
我正在将 Plaid Link 和 Stripe 集成到一个向导表单流中(很多页面在每个页面上都有很多字段)。用户输入的所有信息都存储在一个全局变量“this.applicationservice.application.applicant”中。用户在此流程中间点击支付验证,Plaid 在调用 Plaid.create(plaidparameters).open() 后弹出一个 IFrame。初始化 Plaid 时,它会擦除我的浏览器内存,并且“this.applicationservice.application.applicant”现在未定义。
调用格子初始化时如何避免丢失浏览器内存?
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();
}
);
所以问题是 onSuccess
回调中 this
的范围没有扩展到回调之外。
我的一位在 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
对象继承其范围。