我正在阅读遗留代码库,我遇到了以下代码:
andThenWe: function(callback) {
var qunitAssertAsync = new window.AssertAsync(callback);
return qunitAssertAsync;
},
以及呼叫网站:
andThenWe(function(done) {
...(some code)
done();
});
因此,在通话网站中,我们会传入一个匿名函数,然后这将是===' callback'对?但是,这个回调有一个名为done的参数,似乎在这个函数的末尾被调用。那个参数有点像Ruby中的块参数吗?所以在window.assertAsync
的某个地方,必须调用回调并传递某种类型的句子,这可能是对于Qunit的assert.async
权利? (最有可能的)。 window.assertAsync
的细节非常复杂,所以我只想在高层次上了解必须发生的事情。我做出了正确的假设吗?
这是可能的,因为函数签名中的callback
是一个稍后调用的匿名函数吗?回调函数中的done
本身在运行时也必须是一个函数吗?
答案 0 :(得分:0)
我认为这是试图使qunit.async
更具“可读性”(哈哈)。
qunit.async
用于强制测试等到异步操作完成后再退出测试。
当测试的编写者知道所有异步已完成时,必须调用done
回调。