简体   繁体   English

如何将这个带有回调的链式 Promise 代码转换为 async/await

[英]How do I convert this chained promises code with callback to async/await

How do I convert this chained promises code with callback to async/await如何将这个带有回调的链式 Promise 代码转换为 async/await

I have no idea on how to go about converting this code to async/await so that its more readable我不知道如何 go 将此代码转换为 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);
        };
      });
    };
  });
});

Here is what you want:这是你想要的:

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);
        };
    };
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM