CNode

问个关于异步回调的问题,这里真的搞不定啊

问答
Mm949976269发布于10 年前最后回复10 年前6 回复3501 浏览0 收藏

getusersmsgcount函数 QQ图片20160822224719.png

主函数 QQ图片20160822224730.png

我的getusersmsgcount函数没有起作用,最后返回的array还是我getusers函数拿到的array

查看回复

回复 (6)

M
m949976269#1·10 年前

我的getusersmsgcount函数没有起作用,最后返回的array还是我getusers函数拿到的array

O
oyosc#2·10 年前

你的后面的function(){res.json...}这里就是promise里的回调函数,你要在参数里面加个result,不加你怎么得到结果哦,建议看下promise的基础知识

N
ncuzp#3·10 年前

可能有几个原因:

  • getusersmsgcount这个函数forEach的过程中被reject了,这个可以在Promise链后面加个catch看看
  • 这里没看到getusers这个函数, 是不是把array给对象给覆盖了, 改变了对象的指向

至于楼上说的这个, 主要还是要看情况, 如果你的promise链是连续的, 可以通过resolve将结果传到下一个then里, 如果两个promise链关联性不是很大, 是可以用你这种全局变量的方法的

M
m949976269#4·10 年前
引用 ncuzp可能有几个原因: getusersmsgcount这个函数forEach的过程中被reject了,这个可以在Promise链后面加个catch看看 这里没看到getusers这个函数, 是不是...

@ncuzp 我找到原因了 QQ图片20160823092444.png 我那个函数是处理的arr,我用的for-each,我是在循环外resolve的arr,这样往下传的还是原来的arr

N
ncuzp#6·10 年前

@m949976269 额 确实是, 你循环里面居然还是异步查询😓,可以的啊每次循环你用promise包起来,然后promise.all就可以了

参与回复
登录后即可参与回复。登录