草庐IT

异步通信

全部标签

Javascript OOP - 在异步回调中丢失了它

我在jsoop上遇到的问题仍然困扰着我-我确定我做得不好,但我不知道如何正确地做。比如我有这段代码Auth.prototype.auth=function(){varrequest=newXMLHttpRequest();request.open('GET',this.getAuthServerURL()+'/token',true);request.send();request.onloadend=function(){varresponse=JSON.parse(request.responseText);console.log(response);if(response.resu

javascript - setInterval() 是异步函数吗?

我每秒钟向服务器发送一个XMLHttpRequest,服务器将响应新消息。为了每秒调用XMLHttpRequest,我在SharedWorker中使用了setInterval()函数。但是,由于我每秒都在发出请求,所以我想知道setInterval()是否是异步的?例如,如果一个XMLHttpRequest请求“由于延迟”需要3秒才能完成,我会同时处理3个请求还是setInterval()等待第一个请求完成后再等待1秒并发送另一个请求?这是我的代码functioncheckQueue(url){varxhr=newXMLHttpRequest();xhr.addEventListene

javascript - 完成所有异步任务后退出 NodeJS 脚本

我正在使用带有NodeJS的firebase执行一些异步过程。我想在完成NodeJS进程执行的所有任务时停止,而不需要Ctrl+C命令。我试图退出进程,但它在所有执行完成之前运行。如何运行所有异步任务然后退出脚本? 最佳答案 首先,您所有的异步过程都应该是promise,然后您将所有这些promise包装在一个带有Promise.all的promise中,并在该promise解决时退出。像这样:Promise.all([promiseForAsynchronousProcess1,promiseForAsynchronousProc

javascript - 异步/等待分配给对象键 : is it concurrent?

我知道这样做:constresultA=awaita()constresultB=awaitb()//codehere有效a().then(resultA=>{b().then(resultB=>{//codehere})})基本上,a()运行然后b()运行。我嵌套它们以表明resultA和resultB都在我们的范围内;但是这两个功能都没有同时运行。但是这个呢:constobj={result1:awaita(),result2:awaitb()}a()和b()是否同时运行?供引用:constasyncFunc=async(func)=>awaitfunc.call()constre

javascript - 异步/等待 nodejs 支持?

只是一个小问题,我无法解决。我在Nodev8.1.1上,我尝试使用async/await但它不起作用。我的代码片段如下所示:constaxios=require('axios');constTOKEN='...';consthttpClient=axios.create({baseURL:'https://myhost/api/',headers:{'Authorization':`Token${TOKEN}`}});try{constresp=awaithttpClient.get('users?limit=200');}catch(e){console.error(`Fail!\n

javascript - JSONP 是否进行异步调用?

我是jsonp的新手,我知道JSONP是一种创建动态标记,用回调函数包装返回的JavaScript(或JSON对象)。但如果我没记错的话,src脚本标记中的属性将阻止所有进一步的执行,直到脚本加载,那么它怎么可能是异步调用呢? 最佳答案 实际上,您可以在here上阅读和here动态创建DOM完成加载后的元素将不会阻塞,因此它们将是异步的……至少按照它们的创建顺序。摘自http://calendar.perfplanet.com/2010/the-truth-about-non-blocking-javascript/Wheninse

javascript - Node.js/Sequelize.js/Express.js - 如何插入多对多关联? (同步/异步?)

我有两个模型(个人、电子邮件),我正在尝试使用Sequelize命令插入到创建的“Individual_Email”表中。当Sequelize正在创建所需的表时,它在尝试向该表添加/获取/设置该表时返回以下错误:“对象[objectPromise]没有方法'addEmail'”。我错过了什么?Sequelize文档说,如果模型是User和Project,“这会将方法getUsers、setUsers、addUsers添加到Project,并将getProjects、setProjects和addProject添加到User。”这让我相信(查看promises)我可能误解了如何使用Nod

javascript - ES7 异步函数和 promise 之间的技术区别?

我试图更好地理解JavaScript中的asyncfunction在技术上是什么,即使我基本上知道如何使用它们也是如此。许多对async/await的介绍让人相信async函数基本上只是一个promise,但显然不是这样(至少在Babel6-transpiledcode中不是):asyncfunctionasyncFunc(){//nop}varfooPromise=newPromise(r=>setTimeout(r,1));console.clear();console.log("typeofasyncFuncis",typeofasyncFunc);//functionconso

javascript - 从异步函数返回的 promise 中获取值(value)

我已经习惯了建议的async/await语法,并且有一些不直观的行为。在“async”函数中,我可以console.log正确的字符串。但是,当我尝试返回该字符串时,它返回了一个promise。检查此条目:async/awaitimplicitlyreturnspromise?,很明显任何“异步函数()”都会返回一个promise,而不是一个值。没关系。但是你如何获得值(value)呢?如果唯一的答案是“回调”,那很好-但我希望可能有更优雅的东西。//src//==========================================require("babel-polyfi

javascript - 在不转换异步函数的情况下编译 typescript

有没有办法只使用TypeScript编译器来删除类型注释,而不是转译异步函数?像{target:'esInfinite'}选项之类的东西?原因是:有些浏览器已经支持异步功能,所以我希望有一个不影响这些功能的构建目标。示例输入:asyncfunctionfoo(a:number):Promise{}示例输出:asyncfunctionfoo(a){} 最佳答案 在您的tsconfig.json中,将您的目标更改为ES2017,然后它将保留async/await。{"compilerOptions":{....."target":"ES