我可以通过native Promise
object吗?至 jQuery when
它的行为是否符合预期?
最佳答案
是或否取决于使用的 jQuery 版本。
- jQuery <3 ... no ...
$.when()
不会解开原生 js Promise。它以与处理任何其他对象/值相同的方式处理除自己的 Deferreds/Promises 之外的任何内容。
// using jQuery 2.1.1
$.when(Promise.resolve('xxxyyy')).then(result => {
console.log(result);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
- jQuery 3+ ...是的...在版本 3 中,jQuery 被修改为(至少在这方面)符合 Promise/A+规范
$.when()
将解开任何 Promise/A+ 兼容的 Promise/thenable,包括 js 原生 Promises。
// using jQuery 3.1.1
$.when(Promise.resolve('xxxyyy')).then(result => {
console.log(result);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
关于javascript - jQuery.when 接受原生 Promise 对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51459351/