让cordova等待asynchronous挂钩完成
在我的Cordova项目中,我有一个在after_prepare
上执行RequireJS优化(r.js)的after_prepare
。 该优化本质上是asynchronous的,所以我的钩子代码在所有的优化完成之前都会返回。
例如,运行cordova run browser
时会导致问题:在第一页加载时,优化还没有完成,站点看起来破损。
有没有办法使Cordovoa构build过程阻塞,直到某个钩子触发callback? 或者优化器可以以阻塞/同步的方式运行?
我能想到的另一种方法是使用不同的stream程进行优化和繁忙 – 主要是等待完成,但对我来说,这看起来像是一种矫枉过正的行为。
您可以使用内置的承诺模块来阻止Cordova的进行,直到钩子解决。 沿着这些线路的东西:
#!/usr/bin/env node var deferral; function doSomethingAsync(){ somethingAync .success(function(){ deferral.resolve(); }) .fail(function(err){ deferral.reject(err); }); } module.exports = function(ctx) { deferral = ctx.requireCordovaModule('q').defer(); doSomethingAsync(); return deferral.promise; };
- npm ERR! 在1:379680意外的input结束
- Port Cordova插件(数据库API)到Node.Js模块?
- cordova ios build plugin无法恢复
- meteor1.3 NPM:意外的保留字导入
- 在Windows 8上安装phonegap的Prolem – 未满足的依赖
- azure色的通知中心客户端代码在离子中使用ngCordova和PushPlugin
- WebRTC与Phonegap / Cordova一起工作吗?
- 在node-sass@0.9.6安装脚本“node build.js”失败
- NodeJs,Expressjs与EJS到Android doens't工作在PhoneGap?