在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 關于javascript的setinterval異步問題

關于javascript的setinterval異步問題

第一段代碼

    var timer = null
    var a = [1,10,20,30]
    timer = setInterval(function()
    {
        

        for(var ll=0;ll<a.length;ll++)
        {
            a[ll] -= 1;
        }
        console.log(a)

    },3500);

運行結果為正常
圖片描述

第二段代碼

    var timer = null
    var a = [{
                index:1,
            },{
                index:10,
            },{
                index:20,
            },{
                index:30,
            },{
                index:40,
            }]
    timer = setInterval(function(){
        for(var ll=0;ll<a.length;ll++){
            a[ll].index -= 1;
        }
        console.log(a)
    },3500);

運行結果卻和預期不一樣
圖片描述

請問為什么會這樣??setInterval是異步執(zhí)行的嗎

回答
編輯回答
網妓

var timer = null

var a = [{
            index:1,
        },{
            index:10,
        },{
            index:20,
        },{
            index:30,
        },{
            index:40,
        }]
timer = setInterval(function(){
        for(var ll=0;ll<a.length;ll++){
            a[ll].index -= 1;
        }
        console.log( JSON.stringify( a ) )
},3500);
2018年6月11日 01:51
編輯回答
不歸路

一樓是正確的,這段代碼我在瀏覽器執(zhí)行和直接 window cmd 運行的結果是不一樣的,cmd 是預期結果,瀏覽器不是

2017年10月9日 05:08
編輯回答
痞性

建議參考這個問題 關于console.log的同步異步:https://segmentfault.com/q/10...

注意:全局的 console 對象的方法既不總是同步的(如瀏覽器中類似的 API),也不總是異步的(如其他 Node.js 流)Node.js v8.9.3 文檔
2017年1月19日 03:41