我在this documentation之后编写了一个Cordova插件。我可以毫无问题地安装插件,但是,当我在钩子中调用一些异步代码时,该代码将永远不会运行(或者至少这是我的怀疑)。我测试了以下代码:
在我的<hook type="after_run" src="lib/after-run.js" />
我定义了以下钩子:
after-run.js
我的module.exports = function () {
console.log('After run!')
function timeout() {
console.log('Timeout!')
setTimeout(function () {
console.log('Hello World!')
timeout()
}, 1000)
}
timeout()
}
看起来像这样:
cordova run
运行$ cordova run
... (platform building etc) ...
After run!
Timeout!
io.cordova.hellocordova: 68915
logPath: /Users/niklas/temp/temp/sampleApp/platforms/ios/cordova/console.log
时,我得到以下输出:
$ cordova run
... (platform building etc) ...
After Run!
Timeout!
Hello World!
Timeout!
Hello World!
Timeout!
Hello World!
...
然而,我期待得到这样的东西:
after-run.js
所以我的问题是:这是为什么?我如何获得通缉行为?即如何指定钩子何时完成,而不仅仅是“切断”。
备注:
$http
时,我会得到预期的输出。