我有执行我所有逻辑的函数,然后想获得所有产品的计数。我可以做一个.then(),但我不希望它嵌套。
我也想先执行此查询。我该如何运行它并首先在变量中获取结果。我尝试了异步等待,但是在完成之前它仍然跳到了下一节。

我也试过Promise.resolve

// initial code here

  let productCount = Promise.resolve( Product.count({
    where: {
      title: {
        $like: '%'+searchTerm+'%'
      },
    },
  }).then(result => {
    return result
  })

)

// get product count
// do some logic

// my next query which I do results in .then

最佳答案

我不确定我是否已经完全理解您,但是如果您只想等待Product.count()完成再继续操作,则可以执行以下操作:

async function productCount(searchTerm) {
  let productCount = await Product.count({
    where: {
      title: {
        $like: '%'+searchTerm+'%'
      },
    },
  })
  return productCount
}


当您调用productCount()时,您还必须使用await并将'async'放在调用函数名称的前面,例如:

async function callingFunction() {
  ...
  let productCount = await productCount(searchTerm)
  // do something with productCount
}

09-17 20:46