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