如何将这个带有回调的链式承诺代码转换为async/await
我不知道如何将这段代码转换为async/await,这样它的可读性就更好了
var responseCallbacks = {};
bot.onText(/\/something/, async (msg) => {
var callback = responseCallbacks[msg.chat.id];
if (callback) {
delete responseCallbacks[msg.chat.id];
return callback(msg);
}
bot.sendMessage(msg.chat.id, "something").then(() => {
responseCallbacks[msg.chat.id] = (answer) => {
var something = answer.text;
bot.sendMessage(msg.chat.id, "something else").then(() => {
responseCallbacks[msg.chat.id] = (answer) => {
var somethingElse = answer.text;
console.log(something, somethingElse);
};
});
};
});
});
以下是您想要的:
var responseCallbacks = {};
bot.onText(/\/something/, async (msg) => {
var callback = responseCallbacks[msg.chat.id];
if (callback) {
delete responseCallbacks[msg.chat.id];
return callback(msg);
}
await bot.sendMessage(msg.chat.id, "something");
responseCallbacks[msg.chat.id] = async (answer) => {
var something = answer.text;
await bot.sendMessage(msg.chat.id, "something else");
responseCallbacks[msg.chat.id] = (answer) => {
var somethingElse = answer.text;
console.log(something, somethingElse);
};
};
});