如果在IE 11上根本没有输入字段,则延迟

时间:2018-07-08 12:40:28

标签: angular

我在IE11上遇到了最奇怪的问题。在其他浏览器上效果很好。

输入内容不会立即显示。他们消失并随机出现。就像IE需要花很多时间才能画出来的东西一样。

我关注了https://docs.angularjs.org/guide/ie,但仍然无法正常工作。

角度/斜度:1.0.6 节点:6.10.1 操作系统:win32 x64 角/普通:4.2.2 角/编译器:4.2.2 的角度/编译器cli:4.2.2 角/芯:4.2.2 角/形式:4.2.2 角/ HTTP:4.2.2 角/平台浏览器:4.2.2 角/平台浏览器动态:4.2.2 角度/路由器:4.2.2 角度/ cli:1.0.6

这是我的主要代码,其中的输入被延迟绘制(如果有的话):

 const functions = require('firebase-functions');
 const admin = require('firebase-admin');
 admin.initializeApp(functions.config().firebase);

 exports.sendMessage = functions.database.ref('/UserRequests/{uid}')
.onCreate((snap, context) => {

    const position = snap.val();
    var loc = [position.l[0], position.l[1]];

    const db = admin.database();
    const ref = db.ref('/DriversAvailable');
    const drivers = new GeoFire(ref);
    var data = [];


    const pathId = context.auth.uid;
    const ref1 = db.ref('/UserRequests/{pathId}');
    console.log("UserID" + pathId);


    ref.once('value').then(snapshot => {
        snapshot.forEach(function (child) {

            console.log(child.key + "  key");  //This code gets executed afterwards.

            var c = child.val();
            var aaa = child.key;
            var lat = c.l[0];
            var lng = c.l[1];


            var dist = getDistance(position.l[0], position.l[1], lat, lng);
            console.log("dis" + lat + lng + "aaa" + dist);

            data.push({
                id: aaa,
                dis: dist
            });


        });
        return console.log("gotit");
    });


    var getDistance = function (lat1, lng1, lat2, lng2) {
        var R = 6378137; // Earth’s mean radius in meter
        var dLat = rad(lat2 - lat1);
        var dLong = rad(lng2 - lng1);
        var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
            Math.cos(rad(lat1)) * Math.cos(rad(lat2)) *
            Math.sin(dLong / 2) * Math.sin(dLong / 2);
        var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
        var d = R * c;
        return d; // returns the distance in meter
    };

    var rad = function (x) {
        return x * Math.PI / 180;
    };

    data.sort(function (a, b) {
        return a.dis - b.dis
    });

    var i = 0;
    var n = data.length;
    console.log("number" + n);    //This code is executed first.

    while (i < 2 && i <= n) {
        i++;
        var k = data[i].id;
        const getdevicetokenpromise = db.ref(`/DriversAvailable/${k}/token`).once('value');
        return getdevicetokenpromise.then(result => {
            console.log(result.val());
            var token = result.val();
            const payload = {
                data: {
                    uid: pathId
                }
            };
            return admin.messaging().sendToDevice(token, payload)
                .then((response) => {
                    return console.log("Successfully sent message:", response);
                })
                .catch((error) => {
                    console.log("Error sending message:", error);
                });
        });

    }


    console.log("hi");
});

0 个答案:

没有答案