如何在该函数中返回值代答?

时间:2018-12-23 13:33:19

标签: javascript asynchronous promise async-await return

我正在尝试与MongoDB数据库建立连接,但是我无法导出数据库对象,而是导出了Promise。

我会缺少什么?

  

index.js

export const db = async() => { 
  return await MongoClient.connect(MONGO_URL)
}

我也尝试过这种方式:

export const db = async() => { 
  const result = await MongoClient.connect(MONGO_URL)
  return result
}
  

resolvers.js

import { db } from '/mongodb'

此函数返回异步函数数据库

2 个答案:

答案 0 :(得分:0)

尝试一下:

const db = async() => { 
  return await MongoClient.connect(MONGO_URL)
}

export const dbResult=db()

然后

import { dbResult} from './mongodb'
dbResult.then(res=>{
     //see what they are
     //console.log(dbResult,res)
})

答案 1 :(得分:0)

原因是因为您正在导出异步功能(承诺)。您可以做的是:

1)从require()更改为import(通常更好,ES6模块比较不稳定)

2)做类似const database = await (require('./mongodb').db())

的事情