Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将此LINQ代码转换回循环(或者为什么此对象有时为空)_Javascript_Linq_Knockout.js - Fatal编程技术网

Javascript 将此LINQ代码转换回循环(或者为什么此对象有时为空)

Javascript 将此LINQ代码转换回循环(或者为什么此对象有时为空),javascript,linq,knockout.js,Javascript,Linq,Knockout.js,我在一个应用程序中有一个上载按钮,可以上载一个deliveries对象,但有时候deliveries对象在到达web服务时是空的 完整的代码如下,但正是这一点,我有困难取消拼接。我相信这是LINQ代码,所以有人能帮我把它转换回一个循环,这样我就可以开始尝试并理解为什么deliveries对象可能是空的吗 var deliveries = Enumerable.From(results).Select(function (r) { r.transactionDate = r.transac

我在一个应用程序中有一个上载按钮,可以上载一个deliveries对象,但有时候deliveries对象在到达web服务时是空的

完整的代码如下,但正是这一点,我有困难取消拼接。我相信这是LINQ代码,所以有人能帮我把它转换回一个循环,这样我就可以开始尝试并理解为什么
deliveries
对象可能是空的吗

var deliveries = Enumerable.From(results).Select(function (r) {
    r.transactionDate = r.transactionDate.format("YYYY-MM-DD HH:mm:ss");
    return r;
}).ToArray();
完整代码:

me.uploadClicked = function () {
playClicked();
coreViewModel.busyMessage("Processing delivery data...");

deliveryRepository.GetTodaysDeliveries(function (results) {
    var deliveries = Enumerable.From(results).Select(function (r) {
        r.transactionDate = r.transactionDate.format("YYYY-MM-DD HH:mm:ss");
        return r;
    }).ToArray();


    window.setTimeout(function () {
        coreViewModel.busyMessage("Uploading delivery data...");

        var objUploadDeliveries = Object.create({
            objStore: Object.create({
                storeTypeID: coreViewModel.store.storeTypeID(),
                storeID: coreViewModel.store.id()
            }),
            objDeliveries: deliveries
        });

        var comm = new URLHelper();
        var xhr = $.ajax({
            url: comm.hosturl() + "UploadDelivery",
            type: 'POST',
            beforeSend: function(xh) { xh.setRequestHeader("token", coreViewModel.token); },
            data: objUploadDeliveries,
            dataType: 'json',

            success: function (result) {
                if (!result) {
                    playError();
                    return;
                }
                playUploadComplete();
            },
            error: function (x, e) {
                playError();
                errorHandler(x, e);
                },
            timeout: 60000
        });
    }, 20000);
});
}
GetTodaysDeliveries函数如下所示:

GetTodaysDeliveries: function (callback) {
    deliverysDatabase.GetDeliveries(function (results) {
        $.each(results, function (index, result) {
            result.transactionDate = moment(result.transactionDate).utc();
        });

        var todaysResults = Enumerable.From(results).Where(function (r) {
            return moment().isSame(r.transactionDate, 'day');
        }).ToArray();

        return callback(todaysResults);
    });
}
GetDeliveries: function (callback) {
    var me = this;

    db.transaction(
        function (context) {
            context.executeSql("SELECT barcode, titleName, delivered, expected, isNews, supplier, supplierId, transactionDate FROM delivery ORDER BY titlename", [], function (context, result) {
                if (result.rows.length > 0) {
                    var results = [];
                    for (var i = 0; i < result.rows.length; i++) {
                        results.push(result.rows.item(i));
                    }

                    return callback(results);
                } else {
                    return callback([]);
                }
            }, me.ErrorHandler);
        }
        , me.ErrorHandler);
}
其中的deliverydatabase.GetDeliveries函数如下所示:

GetTodaysDeliveries: function (callback) {
    deliverysDatabase.GetDeliveries(function (results) {
        $.each(results, function (index, result) {
            result.transactionDate = moment(result.transactionDate).utc();
        });

        var todaysResults = Enumerable.From(results).Where(function (r) {
            return moment().isSame(r.transactionDate, 'day');
        }).ToArray();

        return callback(todaysResults);
    });
}
GetDeliveries: function (callback) {
    var me = this;

    db.transaction(
        function (context) {
            context.executeSql("SELECT barcode, titleName, delivered, expected, isNews, supplier, supplierId, transactionDate FROM delivery ORDER BY titlename", [], function (context, result) {
                if (result.rows.length > 0) {
                    var results = [];
                    for (var i = 0; i < result.rows.length; i++) {
                        results.push(result.rows.item(i));
                    }

                    return callback(results);
                } else {
                    return callback([]);
                }
            }, me.ErrorHandler);
        }
        , me.ErrorHandler);
}
GetDeliveries:函数(回调){
var me=这个;
数据库事务(
功能(上下文){
executeSql(“按标题名选择条形码、标题名、已交付、预期、isNews、供应商、供应商ID、交货订单的交易日期”、[],函数(上下文、结果){
如果(result.rows.length>0){
var结果=[];
对于(var i=0;i
您的代码片段从结果中获取数组,格式化日期,然后返回数组。因此,交付成果与结果相同,但带有日期格式。如果Deliverables为null,则结果必须为空或null。您可以通过插入

console.log("test"); 
进入循环

这是unlinqd代码段

var deliveries = [];
results.forEach(function(item)
{
  var item.transactionDate = item.transactionDate.format("YYYY-MM-DD HH:mm:ss");
  deliveries.push(item);
};

我希望这能澄清问题。

因此,我需要进一步回顾,找出
结果
返回为空的原因。那个未链接的代码真的很有帮助,谢谢。