AWS Cognito - 将圆形结构转换为 JSON 时遇到错误
AWS Cognito - Encountering Error Converting Circular Structure to JSON
我正在尝试为访问我网站的用户设置 Cognito UnAuthenticated 信用。但是,在从 Cognito 分配用户 ID 后,我遇到了 "Error Converting Circular Structure to JSON",我正在调用同步管理器上的同步方法...请参阅下面的代码。
非常感谢任何解决此问题的帮助
// Initialize the Amazon Cognito credentials provider
AWS.config.region = 'us-east-1'; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:my-id-pool-id'
});
function getMeACognito() {
AWS.config.credentials.get(function(){
var syncClient = new AWS.CognitoSyncManager();
syncClient.openOrCreateDataset('yaHeardPrefs', function(err, dataset) {
dataset.put('userPrefs', 'samplePrefs', function(err, record){
if(err)
{
console.log('(Sync error)Received error while saving prefs = ' + err);
}
dataset.synchronize({
onSuccess: function(data, newRecords) {
console.log('success');
},
onFailure: function(err){
console.log('Error while sync = ' + err);
},
onConflict: function(err) {
console.log('error / conflict = ' + err);
}
});
});
});
});
}
我得到的错误是 -
aws-sdk-2.3.15.min.js:25 Uncaught TypeError: Converting circular structure to JSON
请注意,我确实理解 JSON 中的循环结构转换错误是基于少数 google 搜索...但是,我无法控制 JSON 对象由 Cognito 库在这里创建...因此,需要帮助来找出解决问题的途径。如果你们中的任何人以前遇到过这个问题并且有解决方案,请回复。
在我上面的应用程序中,对于在浏览器客户端创建的每个新 Cognito 用户,我正在创建一个新数据集并向其中添加一些信息。
我还设置了 Cognito 来触发用户创建的 Lambda 函数。
因此,在创建新用户期间,Cognito 触发了 Lambda 函数,并在将用户数据集更新操作标记为 "complete" / [=22= 之前同步等待函数 return 成功].
在 Lambda 函数中,我还尝试使用一些附加信息为在浏览器中创建的用户更新相同的数据集。这似乎触发了对 Cognito 浏览器客户端的更新。毕竟,Cognito 的主要功能是在用户信息更改时保持其各种客户端同步。
如 中所述,当我停止尝试同时更新客户端和 lambda 函数的相同数据集时,这种情况就消失了。
我正在尝试为访问我网站的用户设置 Cognito UnAuthenticated 信用。但是,在从 Cognito 分配用户 ID 后,我遇到了 "Error Converting Circular Structure to JSON",我正在调用同步管理器上的同步方法...请参阅下面的代码。
非常感谢任何解决此问题的帮助
// Initialize the Amazon Cognito credentials provider
AWS.config.region = 'us-east-1'; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:my-id-pool-id'
});
function getMeACognito() {
AWS.config.credentials.get(function(){
var syncClient = new AWS.CognitoSyncManager();
syncClient.openOrCreateDataset('yaHeardPrefs', function(err, dataset) {
dataset.put('userPrefs', 'samplePrefs', function(err, record){
if(err)
{
console.log('(Sync error)Received error while saving prefs = ' + err);
}
dataset.synchronize({
onSuccess: function(data, newRecords) {
console.log('success');
},
onFailure: function(err){
console.log('Error while sync = ' + err);
},
onConflict: function(err) {
console.log('error / conflict = ' + err);
}
});
});
});
});
}
我得到的错误是 -
aws-sdk-2.3.15.min.js:25 Uncaught TypeError: Converting circular structure to JSON
请注意,我确实理解 JSON 中的循环结构转换错误是基于少数 google 搜索...但是,我无法控制 JSON 对象由 Cognito 库在这里创建...因此,需要帮助来找出解决问题的途径。如果你们中的任何人以前遇到过这个问题并且有解决方案,请回复。
在我上面的应用程序中,对于在浏览器客户端创建的每个新 Cognito 用户,我正在创建一个新数据集并向其中添加一些信息。
我还设置了 Cognito 来触发用户创建的 Lambda 函数。
因此,在创建新用户期间,Cognito 触发了 Lambda 函数,并在将用户数据集更新操作标记为 "complete" / [=22= 之前同步等待函数 return 成功].
在 Lambda 函数中,我还尝试使用一些附加信息为在浏览器中创建的用户更新相同的数据集。这似乎触发了对 Cognito 浏览器客户端的更新。毕竟,Cognito 的主要功能是在用户信息更改时保持其各种客户端同步。
如