gpt4 book ai didi

javascript - json RequireJS 插件 + Jasmine

转载 作者:行者123 更新时间:2023-11-29 22:22:37 33 4
gpt4 key购买 nike

我正在使用 jasmine用于测试 JavaScript 代码。
javascript 代码由使用 requireJs 加载的模块组成。
当我使用 json requirejs-plugins 加载 json 文件时这需要 文本!插件 我在网络浏览器上看不到任何输出。
奇怪的是我也没有收到任何 javascript 错误。

这是我的代码 (1)。

有什么想法吗?

附言:
不确定,但问题可能与时间延迟有关。
如果我从本地获取文件(time latency = 6ms)它就可以工作。
如果我从远程服务器(time latency = 170 ms)获取文件(与本地内容相同),它会显示一个空页面。
知道如何解决这个问题吗?


(1)

/*global define, window*/
(function () {
'use strict';
var specUrl = './';
define([
'jasmine',
'jasmineHtml',
'jasmineJquery',
'json!json_data', // if I comment this line is ok,
// otherwise I get empty page with no error
specUrl + 'models/user.spec'
], function (jasmine) {
var initialize = function () {
// some code
};

return {
initialize: initialize
};
});
}());

我确实阅读了有关 Asynchronous specs 的文档但目前还不清楚我该如何解决这个问题。有什么想法吗?
我确实发布了一个非常简单的代码:(1) 有效,(2) 无效,因为从服务器获取 json_data 可能需要大约 250 毫秒。

(1)

    define([
'appJasmine',
// 'json!json_data',
], function (app) {
app.initialize(); // it display data on browser
});

(2)

    define([
'appJasmine',
'json!json_data',
], function (app) {
app.initialize(); // it does not display data on browser
});

最佳答案

如果在所有模块准备就绪之前运行 execJasmine,您将得到空页面。
所以你应该发布关于 execJasmine 调用的代码。
例如,如果您正在运行此代码:

        window.onload = function () {
if (currentWindowOnload) {
currentWindowOnload();
}
execJasmine();
};

你会得到一个空白页面。

如果你运行这个,它应该可以工作。

        setTimeout(function () {
if (currentWindowOnload) {
currentWindowOnload();
}
execJasmine();
}, 0)

关于javascript - json RequireJS 插件 + Jasmine ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11531195/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com