草庐IT

异步通信

全部标签

javascript - 异步加载的 Cufon 不会在 IE 中呈现

我正在创建一个使用Cufon的网站,由于大量的Javascript,页面重量特别重。因此,我正在尝试使用head.js(http://headjs.com/)异步加载脚本,如下所示:head.js("http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js",function(){head.js("/js/libs/cufon-yui.js",function(){head.js("/js/shared/Stag_Bold_700.font.js",function(){Cufon.replace('h1',{fontFamil

javascript - Node 异步路由代码

我正在使用带有express4.0的Node。我在互联网上找不到任何关于在路由中嵌入异步代码的信息(包括文档)。有了中间件就很简单了:app.use('/something',function(req,res,next){doSomethingAsync(function(err,probablySomethingElse){//probablysomeerrorcheckingnext();});});routes的问题是没有next回调,express怎么知道什么时候移动到下一个job?app.get('/something',function(req,res){res.rende

javascript - 如何等待异步方法的回调返回值?

我知道等待一个异步方法是愚蠢的,oneshouldusecallbacksinstead.但是,如果第三方API强制您同步怎么办?我正在开发一个Chrome扩展程序,它将阻止用户访问已在另一个选项卡中打开的网站。我基本上需要根据打开的选项卡中的url取消请求。我想用chrome.webRequest.onBeforeRequest像这样:functiononBeforeRequest(details){varwebsiteAlreadyOpenInOtherTab;//Hereiwanttoset`websiteAlreadyOpenInOtherTab`byusingthe`chro

javascript - 尝试在 chrome 扩展程序(JavaScript)中从 default_script 到 content_script 的通信不起作用

好吧,我正在通过扩展程序更改网站的配色方案,这是我第一次使用content_scripts所以是的,我是一个完全的新手,请随意对待我。问题是tabs.connect它不工作,我需要选项卡ID还是什么?这是我到目前为止所拥有的:list.json:{"manifest_version":2,"name":"ROBLOXColorScheme","description":"Editthecolorschemeoftherobloxbar!Note:Notcreatedbyroblox.","version":"1.0","permissions":["","tabs"],"browser

javascript - 如何在 Gulp 4 中使用异步/等待?

我正在尝试做这样的事情:gulp.task("test",async()=>{returngulp.src("**/*.scss").pipe(print((filePath)=>`File:${filePath}`));});(打印为gulp-print)但它给出了以下内容:[22:08:43]Starting'test'...[22:08:43]Finished'test'after12ms[22:08:43]File:src\app\styles\app.scss[22:08:43]File:src\app\styles\test.scss即它在打印消息之前完成。我正在使用Gul

javascript - Typescript/ES7 中异步/等待的有限并行性

我一直在尝试使用Typescript,但我现在对如何有效使用async/await有点困惑。我正在向数据库中插入一堆记录,我需要获取每次插入返回的ID列表。下面的简化示例一般有效,但它并不像我想要的那样优雅,而且它完全是顺序的。asyncfunctiongeneratePersons(){constnames=generateNames(firstNames,lastNames);letids=[]for(letnameofnames){constid=awaitdb("persons").insert({first_name:name.firstName,last_name:name

javascript - 异步函数返回 Promise { <pending> }?

我有以下异步函数:asyncfunctionreadFile(){letcontent=awaitnewPromise((resolve,reject)=>{fs.readFile('./file.txt',function(err,content){if(err){returnreject(err)}resolve(content)})})console.log(content)}readFile()这运行得很好。它按预期将文件缓冲区输出到控制台。但是现在,如果我尝试返回值:asyncfunctionreadFile(){letcontent=awaitnewPromise((res

javascript - 动态创建异步函数

我想知道是否可以像这样动态创建一个异步函数:newFunction('awaitPromise.resolve()');预期,前面的代码抛出:UncaughtSyntaxError:awaitisonlyvalidinasyncfunction 最佳答案 是的,您可以获得对非全局的引用AsyncFunction动态创建异步函数的构造函数。您可以像这样获得对AsyncFunction构造函数的引用:constAsyncFunction=Object.getPrototypeOf(asyncfunction(){}).construct

Javascript 如何通过解构将 promise.spread 语法迁移到异步/等待

我正在清理一些sequelize代码,findOrCreate函数返回一个需要展开才能获得实际结果对象的promise。我想重写我的代码以使用await代替,并且鉴于ES6支持数组解构,我认为用它代替User.findOrCreate({where:{mcId},defaults}).spread((user,created)=>{//dostuff})我能做到const[user,created]=awaitUser.findOrCreate({where:{mcId},defaults})但事实并非如此。我收到错误(intermediatevalue)isnotiterable执行

javascript - 解释 Google Analytics 异步跟踪器

我知道谷歌的异步分析跟踪器是如何工作的。以下代码用于初始化命令数组:var_gaq=_gaq||[];_gaq.push(['_setAccount','UA-xxxxxxxx-x'],['_trackPageview']);现在,这是一个标准数组,一旦加载了GA的代码就会被替换,并用作一种存储您的点击的队列。我的困惑在于想知道如果用户单击导致重新加载的链接(在加载GAjavascript之前),这些点击如何可能会持续存在。如果GA代码没有捕获到对_gaq对象的推送,那么用户单击一个链接并转到一个新页面,这个数组每次都只是重新初始化,不是吗?javascript变量不会在导致刷新的请求