jjzjj

asynchronous

全部标签

javascript - 循环遍历任务 waterfall - promises bluebird

我希望使用bluebird循环执行一些任务,只是将超时用作实验机制。[不打算使用异步或任何其他库]varPromise=require('bluebird');varfileA={1:'one',2:'two',3:'three',4:'four',5:'five'};functioncalculate(key){returnnewPromise(function(resolve,reject){setTimeout(function(){resolve(fileA[key]);},500);});}Promise.map(Object.keys(fileA),function(key

javascript - NodeJS readFile() 检索文件名

我正在遍历一个包含文件名的数组。对于它们中的每一个,我都调用了readFile()。当调用相应的回调时,我希望检索作为参数传递给readFile()的文件名。可以吗?附上一段代码以更好地解释我的意图。varfs=require("fs");varfiles=["first.txt","second.txt"];for(varindexinfiles){fs.readFile(files[index],function(err,data){//varfilename=files[index];//IfIamnotmistaken,readFile()isasynchronous.Henc

javascript - NodeJS 和异步 hell

我刚遇到这种可怕的情况,我有一个字符串数组,每个字符串代表一个可能存在的文件(例如varfiles=['file1','file2','file3']。我需要遍历这些文件名并尝试查看它是否存在于当前目录中,如果存在,则停止循环并忘记其余的文件。所以基本上我想找到第一个存在的文件,然后回退如果没有找到硬编码消息。这是我目前拥有的:varfound=false;files.forEach(function(file){if(found)returnfalse;fs.readFileSync(path+file,function(err,data){if(err)return;found=t

javascript - Node.js 的回调函数都是异步的吗?

我正在努力学习Node.js,我在每个教程中听到的都是“Node是异步的并且没有阻塞!”我听说在常规浏览器中JavaScript只有某些东西,例如AJAX调用可以异步或非阻塞(使用回调)...Node.js也是这样吗,或者都是Node.js回调异步/非阻塞函数? 最佳答案 areallNode.jscallbackfunctionsmadeasynchronous/non-blocking?没有。只有I/O通常是异步的,但许多其他回调是同步的。始终检查文档。异步函数的例子:异步Filesystem访问(不过他们有没有回调的同步对象)

javascript - 没有乱七八糟的回调的 JavaScript 异步编程

我想将异步函数转换为同步函数。functionfetch(){varresult='snap!';$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",functionmessyCallback(data){result=data;});returnresult;}document.write(fetch());​Seeinaction结果总是“啪!”,因为$.getJSON在fetch()完成后运行。我的第一个

Javascript Async=true 属性

我在某个未具名vendor的文档中看到此代码示例。它似乎异步加载脚本,然后从中调用函数。我意识到if-undefined检查可以防止明显的错误,但这不是完全不正确吗?我相信在IE8/9中它会正常工作,但会阻塞执行,直到加载并执行LOADER_URL脚本;而且我相信许多其他支持异步属性的浏览器,这只会导致内联block仅在部分时间执行ifblock内的代码。文档指出“标签是异步的,不会减慢页面的加载速度。”if(typeof(OBJECT_DEFINED_IN_LOADER_URL)!="undefined"){OBJECT_DEFINED_IN_LOADER_URL.Load(fals

javascript - 如何使用 async/await 将此回调转换为 promise?

以下函数从url获取图像,加载它,并返回它的宽度和高度:functiongetImageData(url){constimg=newImage()img.addEventListener('load',function(){return{width:this.naturalWidth,height:this.naturalHeight}})img.src=url}问题是,如果我这样做:ready(){console.log(getImageData(this.url))}我得到undefined因为函数运行但图像尚未加载。如何使用await/async只在图片加载完成且宽高已经可用时才

javascript - Promise.resolve 是异步函数吗?

当我有以下代码时:varpromise1=Promise.resolve([1,2,3]);promise1.then((value)=>{console.log(value);//expectedoutput:Array[1,2,3]});console.log('endofscript');我知道脚本结尾会提前返回,因为promise是异步的。但是它在什么时候变成异步的呢?Promise.resolve()是异步的吗?或者.then是异步的还是两者兼而有之?幕后是否还有其他机制在起作用?(对谷歌来说简直是hell,因为我只能得到新的asyncawait功能的结果)

javascript - 使用 Vue.js 的异步/等待 axios 调用

我在设置其中一个时遇到了一些麻烦。我的Vue.js应用程序中的值。我相信我要么没有正确理解异步axios调用,要么没有理解异步在Vue.js中的工作方式。我有以下三种方法:updateAvailability(availability){if(availability==true){this.showYourDetails();}else{this.showBookingDetails();}},checkAvailability:asyncfunction(event){event.preventDefault();constavailability=awaitthis.handle

javascript - knex select() 在 javascript 中完成查询之前返回

我有这样一个函数:functionget_projects(){varproject_names=[];knex('projects').select('name').then(function(a){project_names.push(a);})returnproject_names;}此函数在完成project_names.push(a)语句之前执行return语句returnproject_names;并且我在调用此函数后得到的是一个空数组,即使我的数据库有结果(如果我在函数a()中登录,我可以看到这个) 最佳答案 knex