小编jok*_*yme的帖子

如何同步确定JavaScript Promise的状态?

我有一个纯JavaScript承诺(内置实现或poly-fill):

var promise = new Promise(function (resolve, reject) { /* ... */ });

根据规范,Promise可以是以下之一:

  • '已定居'和'已解决'
  • '已定居'和'被拒绝'
  • "待定"

我有一个用例,我希望同步询问Promise并确定:

  • 承诺落户了吗?

  • 如果是这样,Promise是否已解决?

我知道我可以#then()用来安排Promise更改状态后异步执行的工作.我不是问怎么做.

这个问题具体是关于Promise状态的同步审讯.我怎样才能做到这一点?

javascript promise es6-promise

132
推荐指数
11
解决办法
4万
查看次数

使用JavaScript和Require.JS选择jQuery 1.9或2.0

jQuery 2. 0日益成熟:http://blog.jquery.com/2013/03/01/jquery-2-0-beta-2-released/

jQuery 2.0打破了与旧浏览器的兼容性,因此必须知道何时使用jQuery 1.9.建议的方法是使用IE的条件注释:

<!--[if lt IE 9]>
    <script src="jquery-1.9.1.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script src="jquery-2.0.0b2.js"></script>
<!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)
  • 当前的Web开发最佳实践表明我们应该避免浏览器嗅探或用户代理字符串解析,但这不是条件注释的那种吗?

  • jQuery 2.0是否只会破坏与旧版Internet Explorer的兼容性?或者是否有其他浏览器在2.0中更糟糕?

  • 如果这不仅影响Internet Explorer(这是条件评论唯一有效的地方),那么我们应该采用什么策略来选择最好的jQuery?

  • 在JavaScript环境中是否存在可全局访问的值/对象/函数/等,其存在可用于表示与jQuery 2.0的兼容性(例如,功能检测)?

主要问题

我的项目目前使用Require.JS来模块化我的代码.我的代码目前只在遇到需要它的第一部分时加载jQuery.

使用Require.JS加载正确版本的jQuery的最佳方法是什么?

我正在考虑:

  • 在加载Require.JS之前使用IE条件注释,然后手动"定义"jQuery

  • 在设置Require.JS路径的代码中使用JS功能检测(在任何需要jQuery之前)根据需要将路径设置为1.9或2.0(我的首选方法)

  • 总是使用1.9,无论什么(最安全,最无聊的方法)

javascript jquery cross-browser requirejs

10
推荐指数
2
解决办法
2913
查看次数