gpt4 book ai didi

javascript - 异步主题范围 Vows.JS

转载 作者:太空宇宙 更新时间:2023-11-04 02:41:31 25 4
gpt4 key购买 nike

我在将父 topic 值传递给子 topic 值时遇到问题。该代码是异步的,我认为这就是我遇到问题的地方。我希望 JSON 响应的一部分成为下面测试的主题。这是测试的相关部分。

{
"A test":{
topic: function() {
request(conf.server + '/categories/' + id, this.callback)
},
'should respond with a 200': function(err, res, body) {
res.statusCode.should.equal(200);
console.log(JSON.parse(body).title);
},
'should have valid JSON in the body': function(err, res, body) {
(function() {
JSON.parse(body);
}).should.not.
throw();
},
'category collection': {
topic: function(err, res, body) {
console.log(res.statusCode);
return JSON.parse(body).categories
},
'should have a length greater than 0': function(topic) {
topic.length.should.be.above(0);
}
}
}
}

console.log(res.statusCode) 产生未定义的结果,并尝试在“长度应大于 0”中记录 topic 产生 [SyntaxError: Unexpected token u]

我可以这样做吗?如果是这样,怎么办?

最佳答案

我对此进行了快速测试,似乎当第一个参数(即 err 为空)时,它不会传递到子上下文。所有其他参数均已传递。这是我的代码:

module.exports = ( function() {
var vows = require('vows'), assert = require('assert'), suite;
suite = vows.describe('Vows test');
suite.addBatch({
'Parent context ' : {
topic : function() {
this.callback(null, "first", "second");
},
'err should be null' : function(err, first, second) {
assert.isNull(err);
assert.isNotNull(first);
assert.isNotNull(second);
},
'subcontext: ' : {
topic : function(err, first, second) {
console.log('Err: ' + err + ', first: ' + first + ', second: ' + second);
this.callback(null, "firstChild");
},
'Error should be null' : function(err, firstChild) {
assert.isNull(err);
assert.isNotNull(firstChild);
}
}
}
});

suite.run();
}());

结果是错误:第一,第一:第二,第二:未定义✓ OK » 2 荣幸

但是当我传递错误的内容时,日志甚至不会打印并且子上下文错误。

我不知 Prop 体原因。我会检查誓言代码,如果发现任何东西就回来。希望这对您有用。

关于javascript - 异步主题范围 Vows.JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14735433/

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