jQuery-有没有一种方法可以测试函数是否异步
jQuery - Is there a way to test if a function is asynchronous or not?
在我的代码中,我想测试一个函数是否是异步的,如果是,请使用它的回调函数。但如果没有,那么我将手动调用下一个函数。那么,有没有一种方法可以测试一个函数是否是异步的呢?如果没有,那么在哪里可以找到所有异步jQuery函数的列表?
if (isAsynchronous(fn)) {
args.push(function () { alert('callback!'); });
this.fn.apply(this, args);
} else {
this.fn.apply(this, args);
alert('synchronous');
}
因此,如果这不可能的话,列出一份清单将是下一个最好的事情。
var asynchs = {
animate: true,
fadeIn: true
//etc...
};
if (asynchs[fn]) {
args.push(function () {alert('callback!'); });
this.fn.apply(this, args);
} else {
this.fn.apply(this, args);
alert('synchronous');
}
没有程序化的方法来确定函数是同步的还是异步的。事实上,函数可能是同步的,也可能是异步的,这取决于它传递的内容。像$.ajax()
一样,可以传递一个参数来确定它是什么
因此,如果你想知道函数是什么,你必须阅读文档或代码。
通常,如果一个函数提供了"完成"回调或类似的东西,那么您应该怀疑它可能是异步的或具有异步选项,并查看文档进行确认。如果jQuery方法没有完成回调,那么它可能不是异步的。
像$.each()
这样的其他东西只是将回调作为其实现的一部分(它们不是"完成"回调),并且不是异步的。
您还应该怀疑,任何进行动画或联网或等待一段时间的方法都可能是异步的。jquery文档写得很好,所以如果你不确定的话,快速浏览一下通常很简单。
相关文章:
- 如何使用console.log语句在Mocha中测试函数
- 如何在Javascript中测试函数的相等性
- jQuery-有没有一种方法可以测试函数是否异步
- 未捕获的ReferenceError:未定义测试(函数)
- Javascript Mocha测试-测试函数表达式中的函数表达式
- 使用Jasmine测试函数内部的函数
- 如何控制台记录我传递到此测试函数中的每个参数
- jquery中的单元测试函数
- 在摩卡中使用请求调用测试函数
- 如何在 nodejs 中重用带有异步调用的测试函数
- 使用 javascript/jQuery 测试函数的数组
- JsTestDriver,测试函数的名称
- 茉莉花测试函数返回原生承诺
- 使用私有变量的茉莉花测试函数
- jquery测试函数运行不正常
- 模块中的单元测试函数
- 如何测试函数是否调用了特定的方法/函数
- jasmine测试函数,返回一个promise
- Karma-测试函数没有返回,也没有设置范围变量
- AngluarJS Protractor测试:函数应该返回一个promise