小编eli*_*00d的帖子

Lua - 太多 C 级别(限制为 200)

我最近遇到了一个问题,我看到错误“太多 C 级别(限制为 200)”。

它到底意味着什么?我该如何防止这种情况发生?

我认为这与循环需求有关,但它指向我的代码中创建类的新实例的一行,如下所示:

Class:new()
Run Code Online (Sandbox Code Playgroud)

至于我的模块,我确实有一些循环需求,但我尝试通过将外部类移动到同一个模块中来修复它们,如下所示:

Class.SubClass = Class:new()
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

更新:

这是我遇到的一个例子:

lua类

local Class = {}

function Class:new(o)
    o = o or {}
    setmetatable(o, self)
    self.__index = self
    return o
end

return Class
Run Code Online (Sandbox Code Playgroud)

类/Entity.lua

local Class = require('Class')
local Player = require('classes/Player')

local Entity = Class:new()

function Entity:getPlayer() 
    return Player:new() 
end

return Entity
Run Code Online (Sandbox Code Playgroud)

类/Player.lua

local Class = require('Class')
local Entity = require('classes/Entity')

local Player = Class:new()

function Player:getEntities() 
    local entities = {}
    for i = 1, 100 …
Run Code Online (Sandbox Code Playgroud)

lua dependencies require

6
推荐指数
1
解决办法
3223
查看次数

在 ES6 中模拟默认导出的最佳方法是什么?

根据这个答案,我找到了一种模拟命名导出的好方法:/sf/answers/2688987591/

代码测试.js:

import {someMethod} from './someNamedExports'
export default () => someMethod()
Run Code Online (Sandbox Code Playgroud)

codeToTestSpec.js:

import * as someNamedExports from './someNamedExports'
import codeToTest from './codeToTest

sinon.stub(someNamedExports, 'someMethod')
codeToTest()
someNamedExports.someMethod.should.have.been.called
someNamedExports.someMethod.restore()
Run Code Online (Sandbox Code Playgroud)

这按预期工作。

但是,我似乎遇到了默认导出的问题。这是我尝试过的:

代码测试.js:

import someDefaultExport from './someDefaultExport
export default () => someDefaultExport()
Run Code Online (Sandbox Code Playgroud)

codeToTestSpec.js:

import * as someDefaultExport from './someDefaultExport'
import codeToTest from './codeToTest

sinon.stub(someDefaultExport, 'default')
codeToTest()
someDefaultExport.default.should.have.been.called
someDefaultExport.default.restore()
Run Code Online (Sandbox Code Playgroud)

它似乎没有按预期进行存根,并抱怨尝试恢复时未定义 someDefaultExport.default 。

我错过了什么还是这可能是 sinon 的错误?

javascript mocha.js sinon ecmascript-6

5
推荐指数
0
解决办法
1807
查看次数

标签 统计

dependencies ×1

ecmascript-6 ×1

javascript ×1

lua ×1

mocha.js ×1

require ×1

sinon ×1