异步功能在预期结果时停止工作
Async function stops working when expecting result
我有一个看起来像这样的函数:
function myAsyncFunction(num){
if(num>10){
return true;
}else{
return false;
}
}
然后我异步调用此函数:
myAsyncFunction(100, function(result){
console.log('The result is = ' + result); //this never gets called
});
但是控制台.log语句永远不会打印。它应该打印真或假。
例如:调用 JavaScript 函数"异步"
function async(fn, callback) {
setTimeout(function() {
fn();
callback();
}, 0);
}
function sync(fn) {
fn();
}
function foo(){
console.log('foo');
}
console.log('SYNC TEST --------------');
//synchronous
console.log('start sync');
sync(foo);
console.log('end sync');
console.log('');
console.log('ASYNC TEST --------------');
//asynchronous
console.log('start async');
async(foo, function(){
console.log('async callback');
});
console.log('end async');
输出
SYNC TEST --------------
start sync
foo
end sync
ASYNC TEST --------------
start async
end async
foo
async callback
你做得不正确。您可以传递回调并调用回调,结果如下
function myAsyncFunction(num, callback){
if(num > 10){
callback(true);
}else{
callback(false);
}
}
myAsyncFunction(100, function(result){
console.log('The result is = ' + result); //this never gets called
});
您从未调用过该函数。
function myAsyncFunction(num,cb){
if(num>10){
cb(true);
}else{
cb(false);
}
}
myAsyncFunction(100, function(result){
console.log('The result is = ' + result); //this never gets called
});
相关文章:
- jQuery UI自动完成突然停止工作
- JavaScript打印功能使日历停止工作
- 下拉列表在使用z索引放置在前面后停止工作
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 注入工厂时,Angular停止工作
- React Native DeviceEventEmitter键盘WillShow停止工作
- JavaScript在更改css时停止工作
- Chrome地理定位在更新后停止工作
- 重新启动jquery脚本后,角度停止工作
- twitter引导崩溃在第一次点击后停止工作
- 更新Wordpress和我的平滑滚动停止工作
- Hammer.js过了一段时间就停止工作了
- 应用程序在“关闭”之后停止工作(控制台中没有错误);咕哝的构造”;
- 当我添加JavaScript时,链接按钮停止工作
- NetBeans调试突然停止工作
- 某些Magento后端管理按钮已停止工作
- 表单验证在接近尾声时停止工作
- 为什么在ASP.NET Ajax更新面板中执行任何操作后javascript元素都停止工作
- 在html文件中添加了多个外部javascript,其中一个停止工作
- 异步功能在预期结果时停止工作