В моем агенте диалогового потока, в выполнении, у меня есть часть в моем коде, где я вызываю обещание, и бот отвечает пользователю некоторыми данными с сервера. В случае успеха все работает как задумано. Однако в случае ошибки (например, прервать работу) я хочу напечатать пользователю сообщение о том, что произошла ошибка, и ему / ей не нужно ждать ответа вечность.
return new Promise( (resolve,reject) => {
const request = require('request-promise-native');
const options = {
uri: 'https://server.server.com/example',
method: 'POST',
headers: {
'api-token': 'code'
},
body: {
user:'user_name'
},
json: true
};
request(options)
.then(function (body) {
// POST succeeded
console.log("got: "+ body);
agent.add("SUCCESS");
resolve();
})
.catch(function (err) {
// POST failed...
console.log("ERROR!: " + err);
agent.add("I am sorry for the inconvenience but an error happened during your last call.");
agent.add("Please try in a while");
console.log(err.stack);
});
});
Сообщения об ошибках после неудачного сообщения POST печатаются в файлах журналов (поэтому он попадает в раздел .catch), но пользователь не получает никаких сообщений, функция agent.add () в этом не работает случай, который кажется странным. Как я могу напечатать сообщение пользователю, если процедура обещания не удалась?