帖子
帖子
用户
博客
课程
显示全部楼层
9
帖子
0
勋章
176
Y币

[云开发] 关于并发的数据请求!请问这样可以吗?

[复制链接]
发表于 2015-2-23 13:43:00
本帖最后由 不死逍遥 于 2015-2-23 13:54 编辑

新手入门,各位高手请指点!


  1. //串行读取
  2. var datas = [];
  3. var model = api.require('model');
  4. var query = api.require('query');
  5. //读取一
  6. query.createQuery(function (ret, err) {
  7.     if (ret && ret.qid) {
  8.         var qid = ret.qid;
  9.         query.whereEqual({
  10.             qid: qid,
  11.             column: 'name',
  12.             value: 'jack'
  13.         });
  14.         model.findAll({
  15.             class: "user",
  16.             qid: qid
  17.         }, function (ret, err) {
  18.             datas.push(ret);
  19.             //读取二
  20.             query.createQuery(function (ret, err) {
  21.                 if (ret && ret.qid) {
  22.                     var qid = ret.qid;
  23.                     query.whereEqual({
  24.                         qid: qid,
  25.                         column: 'name',
  26.                         value: 'anni'
  27.                     });
  28.                     model.findAll({
  29.                         class: "user",
  30.                         qid: qid
  31.                     }, function (ret, err) {
  32.                         datas.push(ret);
  33.                         //读取三
  34.                         query.createQuery(function (ret, err) {
  35.                             if (ret && ret.qid) {
  36.                                 var qid = ret.qid;
  37.                                 query.whereEqual({
  38.                                     qid: qid,
  39.                                     column: 'name',
  40.                                     value: 'cate'
  41.                                 });
  42.                                 model.findAll({
  43.                                     class: "user",
  44.                                     qid: qid
  45.                                 }, function (ret, err) {
  46.                                     datas.push(ret);
  47.                                     //doSomethings
  48.                                     console.log(datas.length);
  49.                                 });
  50.                             }
  51.                         });
  52.                     });
  53.                 }
  54.             });
  55.         });
  56.     }
  57. });
复制代码


  1. //并行读取
  2. var datas = [];
  3. //全部数据读取完毕
  4. function finalLoaderComplete(){
  5.     //doSomething
  6.     console.log(datas.length);
  7. }

  8. var num = 3;
  9. //一个数据读取完毕
  10. function loaderComplete(data){
  11.     datas.push(data);
  12.     if (--num == 0) {
  13.         finalLoaderComplete();
  14.     };
  15. }

  16. var model = api.require('model');
  17. var query = api.require('query');
  18. //读取一
  19. query.createQuery(function (ret, err) {
  20.     if (ret && ret.qid) {
  21.         var qid = ret.qid;
  22.         query.whereEqual({
  23.             qid: qid,
  24.             column: 'name',
  25.             value: 'jack'
  26.         });
  27.         model.findAll({
  28.             class: "user",
  29.             qid: qid
  30.         }, function (ret, err) {
  31.             loaderComplete(ret);
  32.         });
  33.     }
  34. });
  35. //读取二
  36. query.createQuery(function (ret, err) {
  37.     if (ret && ret.qid) {
  38.         var qid = ret.qid;
  39.         query.whereEqual({
  40.             qid: qid,
  41.             column: 'name',
  42.             value: 'anni'
  43.         });
  44.         model.findAll({
  45.             class: "user",
  46.             qid: qid
  47.         }, function (ret, err) {
  48.             loaderComplete(ret);
  49.         });
  50.     }
  51. });
  52. //读取三
  53. query.createQuery(function (ret, err) {
  54.     if (ret && ret.qid) {
  55.         var qid = ret.qid;
  56.         query.whereEqual({
  57.             qid: qid,
  58.             column: 'name',
  59.             value: 'cate'
  60.         });
  61.         model.findAll({
  62.             class: "user",
  63.             qid: qid
  64.         }, function (ret, err) {
  65.             loaderComplete(ret);
  66.         });
  67.     }
  68. });
复制代码




代码示例:
test.zip 下载附件
2015-2-23 13:53上传708 Bytes下载次数: 897
可以并行读取数据
您需要登录后才可以回帖 登录

本版积分规则