我有一个问题,我可以从AXIOS请求返回数据,但我无法使用Google Node.js库上的操作将这些数据保存到会话用户存储(conv.user.storage.caseNumber)。我尝试了很多不同的方法,但都没有。我可以从意图中保存数据(例如conv.user.storage.subject和conv.user.storage.description)。我已经通过console.log()验证了数据(即caseNumber)在响应中正确返回。任何帮助将不胜感激。
以下是代码:
// Index
const SalesForceProxy = require('./classes/SalesForceProxy');
let proxy = new SalesForceProxy();
app.intent('getDescription - yes - CreateConfirmation', proxy.createCase);
// Proxy.js
module.exports = function () {
this.createCase = function (conv) {
return new Promise(function( resolve, reject) {
axios.post('https://mysite.my.salesforce.com/services/oauth2/token',querystring.stringify(params)).then(function(response){
var caseData = {
"account" : conv.user.storage.accountId,
"recordType" : conv.user.storage.recordTypeId,
"priority" : conv.user.storage.priority,
"subject" : conv.user.storage.subject,
"description" : conv.user.storage.description
};
axios.post('https://mysite.my.salesforce.com/services/apexrest/voicetocase/create',caseData,
{
headers:
{
'Authorization': "Bearer " + response.data.access_token,
'Content-Type': 'application/json'
}
}
)
.then(function(response){
conv.user.storage.caseNumber = response.data.caseNumber;
}.bind({conv: conv}))
.catch((error) => {
console.log(error);
});
resolve()
}.bind({conv: conv})).catch((error) => {
console.log(error);
reject(err);
});
});
}
}
答案 0 :(得分:0)
在您设置用户存储空间之前,您似乎很快就会解决这个承诺,这是第二个承诺。
axiom.post(...)
.then() {
conv.user.storage.X = "";
resolve();
}
这应该按预期工作。