在超时时包装警报

时间:2017-02-14 13:31:13

标签: javascript android cordova ionic-framework

我正在使用cordova条形码扫描仪,有一个这样的样本 尽管那里有评论,但我不确定为什么这里需要setTimeout 它是什么意思所以对话框没有释放应用程序?

cordova.plugins.barcodeScanner.scan(

    // success callback function
    function (result) {
        // wrapping in a timeout so the dialog doesn't free the app
        setTimeout(function() {
            alert("We got a barcode\n" +
                  "Result: " + result.text + "\n" +
                  "Format: " + result.format + "\n" +
                  "Cancelled: " + result.cancelled);                            
        }, 0);
    },

    // error callback function
    function (error) {
        alert("Scanning failed: " + error);
    },

    // options object
    {
        ...
    }

1 个答案:

答案 0 :(得分:0)

警报,确认和提示不属于常规JavaScript,这些API由浏览器供应商提供,并且同步本质上。每当警报,确认和提示被称为Javascript线程阻塞并等待用户与这些进行交互时,在那一刻整个VM(javascript执行线程)被阻止并且什么都不做。