Node.js中的异步等待超时不起作用?

黑焰幽灵
app.get('/testAsync', asyncHandler(async function (req, res,next) {
  //res.send('We test async here')

  async function display(name) {
    setTimeout(function () {
      console.log("displaying "+name)

      returnBody += name + " ";
      return 1
    }, name + "000");
  }


  async function send()
  {
    console.log("sending "+returnBody)
    res.send(returnBody)
    //returnBody="";
    console.log('all done!')
    return 'alldone';
  }

  const getInfo = async () => {
// failed attemp 1
    // display("1")
    // display("2")
    // display("3")
    // display("4")
    // display("5")

//failed attempt 2
    // display(1).then(
    //   display(2)).then(
    //     display(3)).then(
    //       send()
    //     )
    

//failed attempt 3
    // await display(1)
    // await display(2);
    // await display(3);
    send(await display(1),await display(2),await display(3));
    //await send(display1,display2,display3)


  }

   await getInfo();



}))

理想情况下,我希望控制台读取:

  • 显示1
  • 显示2
  • 显示3
  • 发送
  • 全做完了!

而是控制台显示

  • 发送
  • 全做完了!
  • 显示1
  • 显示2
  • 显示3

我究竟做错了什么?不确定是否重要或有帮助,但超时背后的想法是模仿sql执行。

安东库

您应该更改display函数,以便仅在setTimeout执行计划好的函数之后才能解决promise ,例如:

function display(name) {
  return new Promise(resolve => {
    setTimeout(function () {
      console.log("displaying "+name)
      returnBody += name + " ";
      resolve(1);
    }, name + "000");
  })
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript(node.js) - 异步等待不起作用

来自分类Dev

.then()在node.js中不起作用

来自分类Dev

Promise 在 Node JS 中不起作用

来自分类Dev

Node.js:异步嵌套回调在for循环的每次迭代中均不起作用

来自分类Dev

变量替换在node js的mongo中在$ in中不起作用

来自分类Dev

为什么“打印”在node.js中不起作用?

来自分类Dev

将路由在node.js中不起作用

来自分类Dev

投影在Node JS中不起作用的字段

来自分类Dev

GooglesPreedsheet查询在Node JS中不起作用

来自分类Dev

将路由在node.js中不起作用

来自分类Dev

为什么“打印”在node.js中不起作用?

来自分类Dev

返回新的Promise()在Node.js中不起作用

来自分类Dev

解决在循环 Node.js 中不起作用

来自分类Dev

node.js 中的单击事件不起作用

来自分类Dev

删除属性在 node.js 中不起作用

来自分类Dev

MongoDB查询在Node.js中不起作用 为什么此代码不起作用?

来自分类Dev

Node.js“LearnYouNode”杂耍异步功能不起作用

来自分类Dev

猫鼬查询在node.js中不起作用,但在mongo shell中起作用

来自分类Dev

Node.js:表达不起作用?

来自分类Dev

节点Js等待在异步功能中不起作用

来自分类Dev

js异步/等待不起作用

来自分类Dev

在Node.js中的事件处理程序中异步等待

来自分类Dev

XML属性在Node.js xml2js中不起作用

来自分类Dev

node.js-静态文件CSS / JS在Express中不起作用

来自分类Dev

js(node.js)while循环不起作用

来自分类Dev

Node.js Express.js sslforfree 不起作用

来自分类Dev

外部模块中的架构在Node.js中不起作用

来自分类Dev

For循环在Javasctipt中不起作用,无法从Jade中的node.js获得声明的变量

来自分类Dev

CentO中的AWS中的node.js应用程序部署不起作用

Related 相关文章

热门标签

归档