最近我读到一篇关于早期 jQuery Promises/A 模式的缺点的文章:
像 jQuery(1.8 之前)这样的库不会这样做:它们只是改变现有 Promise 的状态。这意味着如果您向多个消费者做出承诺,他们可能会干扰其状态。要意识到这有多荒谬,请考虑同步并行:如果您将一个函数的返回值提供给两个人,其中一个人可能会以某种方式将其更改为抛出的异常!
我想用代码来实现这个缺点,我试过了:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script type="text/javascript">
var promise = $.get("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js");
var promise1 = promise.then(function (result) {
return "Hello";
});
promise1.then(function (result) {
console.log("in promise1 ------>", result.length);
})
var promise2 = promise.then(function (result) {
return "World";
})
promise2.then(function (result) {
console.log("in promise2 ------>", result.length);
})
</script>
</head>
...
似乎不起作用,我怎样才能实现上述文章中描述的情况?