javascript - 关于deferred.promise()的问题
本文介绍了javascript - 关于deferred.promise()的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
输出的答案是两个'你好11',如果修改其中一个defer1.promise(obj)成为defer2.promise(obj),那么答案就变成了两个'你好22',求大神解答下为什么会是这样一个结果?难道是被promise后的obj对象之和调用promise方法的延迟对象(Deferred)有关吗?谢谢
解决方案
你的 obj.done()
调用了两次,相当于注册了两个 done
事件,这两个 done
事件内容都是一样的,obj.hello(name)
。
所以当 defer1.promise(obj)
的情况下,defer1.resolve("11")
会触发注册的两个 done
事件,输出两个 你好11
;defer2.promise(obj)
的情况也类似。
这篇关于javascript - 关于deferred.promise()的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文