我想在浏览器JS应用程序中使用bluebird-q(https://github.com/petkaantonov/bluebird-q)作为Q的shim。这是开箱即用的,因为bluebird-q库代码以2 NodeJS样式开头需要:
var Promise = require("bluebird/js/main/promise")();
var scheduler = require("bluebird/js/main/schedule");
这两个要求不能被整个库(https://github.com/petkaantonov/bluebird/tree/v2.10.2#for-library-authors)的要求所取代:
var Promise = require("bluebird");
Browserify解决了这个问题,但是我认为这个解决方案不够方便:它需要构建步骤,使代码不易读取,某些静态代码扫描程序无法按预期使用浏览器化代码和最重要的蓝鸟和蓝鸟q不能作为单独的脚本文件引用。
关于这个主题的两个问题:
1)是什么原因导致整个蓝鸟图书馆不能被包含在bluebird-q中?
2)在没有浏览器化的浏览器中使用bluebird-q有更优雅的解决方案吗?
P.S。:我知道bluebird本身是为使用browserify的浏览器构建的:这个版本经过了适当的测试。没有官方的browserify构建bluebird-q。