用promis q模块封装的应用,需要调用两次,而且后一次需要用到前一次的结果,求大神帮忙
发布于 9 年前 作者 yuzhouzhong 2902 次浏览 最后一次编辑是 8 年前 来自 问答

用var deferred = Q.defer(); deferred.resolve(result); 写了一个mysql.opertateMysql方法用来操作mysql,第一步要先查询,第二步根据查询的结果来做mysql操作 mysql.opertateMysql(查询操作). then(function(result){ mysql.opertateMysql(根据result进行其他操作). then(function(result){}) }) 有没有更好的写法,不要再嵌套一个 mysql.opertateMysql 十分感谢

6 回复

术语错了,代码不格式化,没有心情回复

@i5ting 没有心情回复就不要写了ok,我也是醉了,何必呢。。。又没有求你。。

把第二步的promise返回?继续then下去? 自豪地采用 CNodeJS ionic

3楼正解,

mysql.operateMysql('...')
  .then(function(result){
    return mysql.operateMysql('...2');
  })
  .then(function(result2) {
    // 如果还需要异步就继续返回 promise
  })

promise 就是用来解决这种回调的呀。return 一个 promise , 下一个 then 是接着该 promise 后面走的。

十分感谢3楼4楼,对1楼表示抱歉,本人小白遇到问题太多了而且看着回调有点乱,内心烦躁。总之十分感谢大家帮助

@klesh 十分感谢

回到顶部