这里有段 nodeJS 代码,是数据库访问的方法,在编写 API 的时候需要访问数据库,但是如果异步访问数据库,在 API 中就返回不了,不知道有没有人可以帮助修改为同步访问数据库的方法?代码在这里: http://elef.top/2713914150342868278.code
1
xjp 2018-12-24 13:52:05 +08:00 via iPhone
不能
|
2
uxstone 2018-12-24 14:07:22 +08:00 1
[await async]( https://www.bilibili.com/video/av19188916)
|
3
lzvezr 2018-12-24 14:14:27 +08:00 via Android
想了一下好像真没什么好办法,async/await 那一套也只是返回 promise 而已
|
4
daijinming OP @lzvezr 能不能请教下,我是 nodeJS 的新手,补充个问题,如果我要编写一个返回 JSON 结果的 API,API 中需要访问数据库,然后将数据库中的结果处理后,返回给 API 的调用客户端,这样的代码有什么规范吗?
|
5
TomVista 2018-12-24 14:17:07 +08:00
promise 和 await /async 自己百度吧.看看哪个合适
|
6
newghost 2018-12-24 14:18:15 +08:00
昏,传个回调函数不就结了…… 以前没写过 JS ?
|
8
lzvezr 2018-12-24 14:33:52 +08:00 via Android
@daijinming 如果是以库的形式,也就是客户端需要加载你这个程序,一般来说就 callback(比较通用,客户端可以自己封装成 promise)或者直接返回 promise
如果是客户端发一个网络请求,你返回 JSON 的这种网络 api,你怎么处理都可以,最后返回 JSON(字符串形式)就行了 |
9
oyosc 2018-12-24 14:36:30 +08:00
目测楼主没写过 nodejs 吧,讲道理现在 promise,async,或者直接 callback 都可以解决了吧,还有 yield 等...
|
10
1010543618 2018-12-24 14:57:41 +08:00
|
11
1010543618 2018-12-24 15:04:49 +08:00
调用其他生成器函数:用 yield* 转移控制
调用 promise:作为 yield 的语句,等 promise 有结果了再调用生成器函数的 next |
12
Desiree 2018-12-24 15:12:34 +08:00
如果要操作数据库的,最好还是用 async 比较好,因为你很难用 callback 去看清楚你每次查询的步骤,操作起来十分麻烦。而且当你做多级查询的时候会觉得嵌套很复杂,加大代码阅读的难度。
|
13
whypool 2018-12-24 15:19:16 +08:00
async function ......
const a = await 异步回调的 return 方法 |
14
plqws 2018-12-24 15:52:23 +08:00
Promise async/await 这两个概念懂了就知道怎么写了
|
15
fortunezhang 2018-12-24 16:48:40 +08:00
如果遇到经常性改动的话,急用 aysnc/await,否则用 promise。
如果对性能要求比较高的话,用 callback |
16
lovedebug 2018-12-24 16:52:04 +08:00
设一个标志,用 setTimeout 或者 setInterval 周期性检查一下
|
17
deepred 2018-12-24 19:54:32 +08:00 1
|
18
Pastsong 2018-12-24 20:15:09 +08:00
请求的结果不需要在一次 loop 中返回啊。。异步才是 node 的精髓。。
|
19
daijinming OP @deepred 谢了朋友
|