承诺没有得到解决。 Alasql不导入CSV

时间:2017-02-07 16:37:28

标签: javascript angularjs csv callback alasql

我无法弄清楚错误是什么。我尝试从我的服务器读出一个CSV,然后使用名为getZinsAnDatum的FUnction访问DateValues。

The Chain从功能开始:

$ scope.calcZins = function database(ctrl,$ scope){....

我将结果链接起来,通过

读出我的CSV值

getZinsAnDatum(dateee,fullDate)

单击两次或等待再次单击时

有效。猜它有效,点击两次后,因为它加载到缓存中。函数本身也返回一个promise,在我收到警告后,指向getZinsAnDatum(dateee,fullDate)的代码行:

警告:在/localhost:8383/validations/js/index.js:269:17的处理程序中创建了一个承诺,但未从中返回

很抱歉,如果我错过了基本概念。  我猜Promise没有链接或者它的流量很大,因为对于我检测到的每个值(大约200)它会下载孔CSV?因此我想在我的Alasql数据库中注入一次CSV并从那里开始工作。

但是把它放入似乎不起作用。你能帮我解决一下吗?关闭我的代码HTML和javascript:

我省去了一些函数和变量,给出并定义了所有变量。

使用Javascript:

     /* global $scope, user,user.anpDat, user.zinsDiff, user.zinsJetz,user.zinsNext, user.nextAnpDat, user.AnzahlAnMonatenZwischenErsterAnpassungUndAktuellemDatum , user.Berechnung, ctrl.Berechnung, Promise, alasql*/

    angular.module('MyApp', ['ngMaterial', 'ngMessages', 'material.svgAssetsCache']).controller('AppCtrl', function ($scope) {

           this.fullDate = new Date("1999-12-20");
    this.fullDate2 = new Date("2000-01-20");
    this.fullDate3 = new Date("2010-03-19");


    this.date = fullDate.toISOString().substring(0, 10);
    this.date2 = fullDate2.toISOString().substring(0, 10);;
    this.date3 = fullDate3.toISOString().substring(0, 10);;

        var data = {};
        var url = 'tests/fib.csv';

        function getZinsAnDatum(dateee, fullDate) {
            return new Promise(function (resolve, reject) {
                alasql.promise('SELECT [1] FROM CSV("tests/fib.csv", {headers:false, })  WHERE [0] >=? AND [1]!="."', [dateee])
                        .then(function (data) {

                            var temp = data [1  ][1];

                            resolve(temp);

                        }).catch(function (err) {
                    console.log('Error:', err);

                });


            });
        }


        $scope.calcZins = function database(ctrl, $scope) {
            this.mybase = new alasql.Database('mybase');
            this.mybase.exec('CREATE TABLE one ');
            this.mybase.exec('SELECT [0][1] INTO one FROM CSV("tests/fib.csv", {headers:false, })');
            //this.mybase.exec('PRINT one'); //GIVES ERRORS, CANT READ UNDEFINED JSON Object

            calcZins2(ctrl, $scope);

            ;
        }


        function calcZins2(ctrl, $scope) {
            var user = new Object;
            var anpassen = false;
            user = angular.copy(ctrl);
            user.Berechnung;
            var Row;
            getZinsAnDatum(user.date2, user.fullDate2).then(function (resu) {


                // Code depending on result
                var value = parseFloat(resu.replace(",", "."));
               user.zinsJetz = value;
                Row.zinsJetz=user.zinsJetz;
                user.Berechnung.push(Row);

                nextAbschnitt(user, ctrl, $scope);
            }).catch(function () {
                // An error occurred
            });





            function nextAbschnitt(user, ctrl, $scope) {



                getZinsAnDatum(date3,fullDate3).then(function (resulte) {


                    // Code depending on result
                    var value = parseFloat(resulte.replace(",", "."));
                    user.zinsNext = value;
                    getZinsAnDatum(date, FullDate).then(function (result) {


                        // Code depending on result
                        var value3 = parseFloat(result.replace(",", "."));
                        user.zinsJetz = value3;

                        gO(user, ctrl, $scope);


                    }).catch(function () {
                        // An error occurred
                    });


                }).catch(function () {
                    // An error occurred
                });
            }
        }


    function getMonthsDifference(date1, date2) {
        var k = date1.getYear() * 12 + date1.getMonth();
        console.log(k + "k")
        var m2 = date2.getYear() * 12 + date2.getMonth();
        console.log(m2 + "m2")
        return (m2 - k + 1);
    }


        function gO(user, ctrl, $scope) {


var g = getMonthsDifference(user.date2 user.date3);
 user.AnzahlAnMonatenZwischenErsterAnpassungUndAktuellemDatum = g;

            var count = 0;


            var promiseFor = Promise.method(function (condition, action, value) {
                if (!condition(value))
                    return value;
                return action(value).then(promiseFor.bind(null, condition, action));
            });



 promiseFor(function (count) {
                return count < user.AnzahlAnMonatenZwischenErsterAnpassungUndAktuellemDatum;
            }, function (count) {
                //  ctrl.Berechnung = user.Berechnung;
                return getZinsAnDatum(date3, fullDate3 ).then(function (resulte) {

             // DO STUFF


                        ctrl.done = true; // Shows THE HTML div via ng-Show
                        ctrl.Berechnung = user.Berechnung;


                    return ++count;
                });


            }, 0).then(function (user) {

            });
        }


    });

HTML:

        <tr>    </tr>
        <tr>    </tr>
         <tr>    </tr>
          <tr>    </tr>
        <tr>    </tr>
       <tr><td>Zinssatz nach richtiger Anpassung:</td><td>     {{ctrl.zinssatzKorrekt}}</td></tr>
       <tr><td>Aktueller Zinssatz der Bank</td><td>{{ctrl.zinssatzAktuell}}</td></tr>
       <tr><td>Differenz: </td><td>{{ctrl.zinssatzAktuell-ctrl.zinssatzKorrekt}}</td></tr>
      <tr>    </tr>
      <tr>    </tr>
      <tr>    </tr>
        <tr>    </tr> 
          <tr>    </tr> 
            <tr>    </tr> 
              <tr>    </tr> 

       <tr>    </tr> <tr>    </tr>



          <tr>
<td>FIBOR/EURIBOR-Stichtag</td><td>maßgeblicher FIBOR/EURIBOR in %</td><td>FIBOR/EURIBOR-
Veränderung</td> <td>Veränderung
kumuliert</td> <td>Anpassung</td> <td>gebotene 
Anpassung</td>  <td>Zinssatz korrekt</td></tr>
       <tr  ng-class="Texttype" ng-repeat="row in ctrl.Berechnung track by $index">
           <td> {{row.anpDat}}</td><td>{{row.zinsJetz}} </td><td>{{row.zinsDiff}} </td> <td>{{row.veranderungKummuliert}} </td> <td>{{row.anpassen}} </td> <td>{{row.geboteneAnpassung}} </td>  <td>{{row.zinssatzKorrekt}} </td></tr>

       </table>

0 个答案:

没有答案