精华内容
下载资源
问答
  • 今天研究一个小问题: 怎么拿到JavaScript异步函数的返回值? 1.错误尝试 当年未入行时,我的最初尝试: [removed] function getSomething() { var r = 0; setTimeout(function() { r = 2; }, 10); return r; ...
  • 不同函数达到同步的函数模拟 funcList是函数执行函数的队列,其中回调函数中flag=true是同步标记量 [removed] var flag = false; function funcTest(t,func){ setTimeout(function(){ (function(param){ console...
  • 本文实例讲述了JS异步函数队列功能。分享给大家供大家参考,具体如下: 场景: 做直播,会有入场消息,入场特效,用户如果有坐骑,需要给他展示几秒钟的坐骑特效,如果几个人同时进场,那该怎么展示呢?这时候就会...
  • js异步函数(async/await)

    2021-07-20 21:48:46
    异步函数也称为“asynac/await”(语法关键字),是ES6期约模式在ECMAScript函数中的应用。async/await是ES8新增的。这个特性让以同步方式写的代码能够异步执行。 2.async async关键字用于声明异步函数。这个关键字...

    1.概念

    异步函数也称为“asynac/await”(语法关键字),是ES6期约模式在ECMAScript函数中的应用。async/await是ES8新增的。这个特性让以同步方式写的代码能够异步执行。

    2.async

    async关键字用于声明异步函数。这个关键字可以用在函数声明、函数表达式、箭头函数和方法上。

    async function foo(){};
    let bar=async function(){};
    let baz=async ()=>{};
    class Qux{
        async qux(){};
    }

    使用async关键字可以让函数具有异步特征,但总体上其代码任然是同步求值的。如果async关键字声明的函数没有使用return关键字或者await关键字,则依然会按照正常的执行顺序执行,如下面代码:

    async function foo(){
        console.log(1);
    }
    foo();
    console.log(2);
    //1
    //2

    如果异步函数使用了return关键字返回了值(如果没有return 则会返回undefined),这个值会被promise.resolve()包装成一个期约对象。异步函数始终返回期约对象。在函数外部调用这个函数可以得到它返回的期约:

     async function foo() { 
         console.log(1);
         return 3;  //也可以直接返回一个期约对象也是一样  return
    展开全文
  • 《The Evolution of Asynchronous JavaScript》外文梳理了JavaScript异步函数的发展历程,首先通过回调函数实现异步,之后又经历了Promise/A+、生成器函数,而未来将是async函数的。感谢景庄对该文章的翻译,内容...
  • 获取js异步函数的返回值

    千次阅读 2017-07-03 15:18:22
    http://www.cnblogs.com/zmc/p/6916164.html
    展开全文
  • node.js 异步函数

    2020-11-04 14:48:03
    异步函数是异步编程语法的终极解决方案,它可以让将异步代码写成同步的形式,让代码不再有回调函数嵌套,使代码变得清晰明了。 使用格式: const fn = async () => {}; async function fn () {}; async关键字 ...

    异步函数异步编程语法的终极解决方案,它可以让将异步代码写成同步的形式,让代码不再有回调函数嵌套,使代码变得清晰明了。

    使用格式:

    const fn = async () => {};
    
    async function fn () {};
    

    async关键字:

    1. 普通函数定义前加async关键字,变成异步函数
    2. 异步函数默认返回promise对象
    3. 在异步函数内部使用return关键字进行结果返回,结果会被包裹的promise对象中,return关键字代替了resolve方法
    4. 在异步函数内部使用throw关键字抛出程序异常
    5. 调用异步函数再链式调用then方法获取异步函数执行结果
    6. 调用异步函数再链式调用catch方法获取异步函数执行的错误信息

    await关键字:

    1. await关键字只能出现在异步函数
    2. await后面只能promise对象(await promise),写其他类型的API是不可以的
    3. await关键字可是暂停异步函数向下执行,直到promise返回结果

    案例:

    [node.js 异步函数 依次读取三个文件]

    展开全文
  • 以上代码会先执行函数hideSelf,当他执行完时js引擎的event 队列空闲时才会去执行队列里等待的setTimeout的回调函数,这就是一个异步 调用 setTimeout 函数会在一个时间段过去后在队列中添加一个消息。这个时间段作为...

    现在需要把下面的方法进行封装,然后调用时仅修改里面的路由跳转。其中,
    在这里插入图片描述
    以上代码会先执行函数hideSelf,当他执行完时js引擎的event 队列空闲时才会去执行队列里等待的setTimeout的回调函数,这就是一个异步

    调用 setTimeout 函数会在一个时间段过去后在队列中添加一个消息。这个时间段作为函数的第二个参数被传入。如果队列中没有其它消息,消息会被马上处理。但是,如果有其它消息,setTimeout 消息必须等待其它消息处理完。

    封装如下:

     hideMy(action) {
          this.hideSelf && this.hideSelf(() => {})
          setTimeout(() => {
            action && action()
          }, 300);
        }
    

    action && action()是什么意思?
    翻译成大白话就是“如果 action 存在,那么就执行 action 方法”,&&是短路写法,前边为true再去执行后边的语句,即:

    if ( action ) {
    
         action ()
    
    }
    

    两处调用如下:一个链接跳转外部,一个路由跳转
    在这里插入图片描述

    goQuickCon() {
          this.hideMy(()=>{
            window.location.href = location.protocol + '//m..com/
          })
        },
        goMyFocus() {
          this.hideMy(()=>{
            this.$router.push({
              name: 'myFocus'
            })
          })
        },
    
    展开全文
  • Node.js异步函数处理

    2020-11-01 16:35:11
    以此类推,反复嵌套,由于setTimeout是异步函数,故会一直回调一直回调。从而产生回调地狱 解决方法 1 Promise 我们先学习Promise对象 let promise=new Promise((resolve,reject)=>{ if(true)resolve(
  • Promise对象是一个构造函数,new一个Promise实例 const promise=new Promise(function(resolve,reject){ .... if(/* 异步操作成功 */){ resolve(value); }else{ reject(error); } }) .then(function...
  • JavaScript异步函数

    万次阅读 2019-01-12 16:17:09
    JavaScript 中常见的异步函数有:定时器,事件和ajax等,那么如何来处理这些异步函数呢,常用的方法有下面几种: 回调函数 function eat() { console.log('好的,我开动咯'); } function cooking(cb) { console...
  • 在写Node.js的过程中,连续的IO操作可能会导致“金字塔噩梦”,回调函数的多重嵌套让代码变的难以维护,利用CommonJs的Promise来封装异步函数,使用统一的链式API来摆脱多重回调的噩梦。  Node.js提供的非阻塞IO...
  • JavaScript异步函数同步方法

    万次阅读 2018-07-24 20:24:27
    在我们平时进行前端开发的时候,经常需要用到异步函数,最常见的是发送网络请求,在发送网络请求之后,在回调函数中对请求结果再进行下一步操作,下面来模拟这个操作步骤: /* * 模拟网络请求的函数 */ function ...
  • JS异步函数返回值的几种方式

    万次阅读 2018-08-31 13:54:13
    在我们的编码过程中,为了满足业务需求,经常需要获取JS异步函数的返回值。今天就来汇总一下拿值的几种方式。 1,通过回调函数的方式来拿返回值,这个想必大家不会陌生 function getSomething(cb) { var r = 0; ...
  • js异步函数之所以特别,一个重要的原因就是它执行完成的时间、耗费的时间靠人的主观是不得而知的。所以不能靠设置定时函数来让上一个程式完成之后来进行下一个函数。 接上次的博客:...
  • 摘要js/nodejs异步函数之间并行操作(promise) var Async = require('async'); function f1 (para1) { return new Promise((resolve1 ,reject1) => { setTimeout(function () {...
  • 本文为大家讲解下js异步操作时回调函数如何控制执行顺序,感兴趣的朋友可以参考下
  • 本文首发微信公众号:jingchengyideng欢迎关注,每天都给你推送新鲜的前端技术文章 ...可以在 Javascript异步函数中抛出错误吗? 这个话题已被反复提起过几百次,不过这次让我们从TDD(Test-Driven Developm...
  • 1、如果终止一个函数的用return即可,实例如下:function testA(){ alert(‘a’); alert(‘b’); alert(‘c’);}testA(); 程序执行会依次弹出’a’,’b’,’c’。 function testA(){ ...
  • !...!...!...!...想了很久了,过程还是蛮模糊,求大神帮我分析下,越详细越好 以上代码是嵌套回调吗,嵌套了几...然后发生的事情是什么(比如说回调函数是怎么传递到各个函数的,各个函数的回调函数一样吗,各个函数的执行顺序)。
  • js循环 异步 函数定义

    2021-01-06 11:09:55
    函数定义 JavaScript函数就是一个只有括号运算符的变量 function f1(a , b, c){ return a+b+c; } let f2 = function (a,b,c){ alert(a+b+c); } let f3 = (a,b,c) => {//屏蔽this对象带来的干扰 alert(a+b+c); } ...
  • 拿到JS异步函数返回值的几种方式

    千次阅读 2020-01-19 10:44:19
    在我们的编码过程中,为了满足业务需求,经常需要获取JS异步函数的返回值。今天就来汇总一下拿值的几种方式。 1,通过回调函数的方式来拿返回值,这个想必大家不会陌生 function getSomething(cb) { var r = 0; ...
  • JavaScript处理异步的几种方式 Javascript语言的执行环境是"单线程"(single thread,就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推)。 这种模式的...
  • JS异步函数 返回值

    2021-01-17 14:52:20
    1. js 异步的几种情况 :1.1 异步操作由浏览器内核的 webcore 来执行:onclick 由浏览器内核的 DOM Binding 模块来处理,当事件触发的时候,回调函数会立即添加到任务队列中。setTimeout 会由浏览器内核的 timer ...
  • 2.异步函数:当一个异步函数被调用时,该函数会立即返回,尽管这个函数规定的操作任务还没有完成 javascript是异步编程的,这是js的一个优点,但是也是它的一个缺点,因为当我们想要使用函数执行完成的结果来进行下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 223,227
精华内容 89,290
关键字:

js异步函数