草庐IT

异步函数async

全部标签

javascript - 试图理解递归函数的类似堆栈的行为

我正在MDN上阅读关于函数的文章,我到达了递归部分,但我不明白最后一部分谈论使用类似堆栈的行为。例子是那个:functionfoo(i){if(i关于该功能,我了解何时显示begin日志,但我不知道何时显示end日志。有人可以帮我解释一下吗? 最佳答案 所以基本上在执行i-1时每次调用foo时它都保持函数打开,它没有返回。它一直在继续,因此begin不断被调用,一旦它达到0,最后一个函数调用就会返回。一旦发生这种情况,其他foo调用也可以开始完成。它们将从最旧到最新完成。您可以通过PhilipRoberts使用放大镜看到它的可视化.

Javascript ES6 生成器异步

我需要异步运行生成器(我需要在控制台1、2、3、4、5中得到结果,因为现在我有4、1、2、3、5)有人可以帮助我吗?我需要运行任务并等待上一个任务完成后再运行下一个任务。我需要使用(如果可能:仅)生成器(或生成器+promise?)这是我的代码/*jshintesnext:true*/functionshow(msg){var_msg=msg;setTimeout(function(){console.log(_msg);},2000);}functionshow2(msg){console.log(msg);}varstack=[];//addsomefunctiontostacks

javascript - Selenium 和异步 JavaScript 调用

我对Selenium和JavaScript回调函数还很陌生,我有一个大问题我自己无法解决。我需要一个使用JavaScript的指定变量。如果我使用GoogleChrome打开页面并使用控制台输入我的JavaScript代码,我可以使用如下方式获取变量:1.varmyId;2.getSomeIdStuffInfo("somestuff",function(docId)(myId=docId));3.returnmyId;如果我一步一步地输入这一行,我很容易得到正确的值myId。但是,当然,如果我尽可能快地执行这三行代码,我会得到null作为返回值,因为当我返回myId时回调函数还没有完成

javascript - `Function` 创建的这些函数有什么区别?

1.varf=newFunction("a","b","returna+b")2.varf2=Function("a","b","returna+b")f和f2都是匿名函数。f(1,2)和f2(1,2)都返回3。那么两者之间有什么实际的内部差异吗?Function是否在内部返回一个函数对象?与使用Function作为构造函数newFunction(...)的区别? 最佳答案 来自ECMAScript5.1specs:WhenFunctioniscalledasafunctionratherthanasaconstructor,itc

javascript - 函数的定义与顺序无关吗?

我根本不是一个真正的javascript菜鸟,虽然在我的一生中我从来没有遇到过这个,但我假设javascript必须在运行任何东西之前分配函数是正确的吗?根据我的所有经验,我预计它会返回“undefined”,但显然它会返回“function”。functionbar(){returnfoo;foo=10;functionfoo(){}varfoo='11';}alert(typeofbar());有人能为我解释一下吗? 最佳答案 JavaScript的这种行为称为提升。MDN(https://developer.mozilla.o

JavaScript ecma6 将普通函数更改为箭头函数

我有那个代码:functiondefineProperty(object,name,callback){if(object.prototype){Object.defineProperty(object.prototype,name,{"get":callback});}}defineProperty(String,"isEmpty",function(){returnthis.length===0;});我使用它如下:console.log("".isEmpty,"abc".isEmpty);它返回:true,false现在,我想把函数改成这样:defineProperty(Stri

javascript - 尝试将嵌套循环转换为递归函数

我正在尝试创建以下嵌套循环的递归版本并获得与引用代码相同的结果。示例如下。这是Codepen上的一个版本http://codepen.io/anon/pen/XbQMLv(代码的目的是仅输出索引中整数的唯一组合。)原始代码和输出:varlen=4;for(vara=0;a递归代码和输出:varlen=4;varend=3;vardata=[];varloop=function(index){if(index===end){console.log(data);return;}for(vari=index;i不确定我在这里遗漏了什么。 最佳答案

javascript - 嵌套 forEach : Uncaught TypeError: data. forEach 不是函数

我不想使用任何for循环或任何常规循环,我正在尝试使用forEach但出现错误UncaughtTypeError:data.forEachisnotafunctionreturnfalsyData.map(function(data){data.forEach(function(key){if(key.match(reg)){returnkey;}});});但如果我这样做,它会起作用:returnfalsyData.map(function(data){for(varkeyindata){if(key.match(reg)){returnkey;}}});为什么?

javascript - 在下划线和 lodash 中实现和理解 "memoize"函数

一直在尝试通过查看下划线文档并尝试编写我自己的更常用函​​数版本来了解更多有关函数式编程的知识。遇到“memoize”——我无法理解它,并在Crockford的“TheGoodParts”中找到了一些信息。_.memoize=function(func){//'cache'objectisusedtoholdtheresultofthememoizedfn'scallvarcache={};varrecur=function(n){varresult=cache[n];if(typeofresult==='undefined'){result=func.apply(this,argum

javascript - ngFor 中的 Angular2 组件抛出错误(viewFactory 不是函数)

我在Angular2应用程序(测试版1)中有一个ComponentB。在我将它放在ComponentA的ngFor循环中之前,它工作得很好。我收到了一个相当神秘的错误:EXCEPTION:TypeError:viewFactory_ComponentB0isnotafunctionin[numbersinComponentA@1:23]BrowserDomAdapter.logError@angular2.dev.js:22690BrowserDomAdapter.logGroup@angular2.dev.js:22701ExceptionHandler.call@angular2.