在我的 Cordova 项目中,我有一个钩子可以对 RequireJS 进行优化(r.js)after_prepare
。该优化本质上是异步的,因此我的挂钩代码在所有优化完全完成之前返回。
例如,这会在运行时导致问题cordova run browser
:在第一个页面加载时,优化尚未完成,网站看起来已损坏。
有没有办法让 Cordovoa 构建过程阻塞,直到某个钩子触发回调?或者优化器可以以阻塞/同步方式运行吗?
我能想到的另一种选择是使用不同的过程进行优化,并在主要过程中忙等待它完成,但这对我来说似乎是一种矫枉过正和不好的做法。
您可以使用内置的 Promise 模块来阻止 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;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)