账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JS 异步队列
    • 2019-01-29 00:00
    • 10
    42
    0
    有三个执行函数,如何通过一个异步队列执行函数,使其能按照参数顺序依次输出?
    function f1() {
      setTimeout(function() {
        console.log('f1')
      }, 300)
    }
    
    function f2() {
      setTimeout(function() {
        console.log('f2')
      }, 100)
    }
    
    function f3() {
      setTimeout(function() {
        console.log('f3')
      }, 200)
    }
    
    function doWork(list) {
        // TODO
    }
    
    doWork([f1, f2, f3])
    
    // 期待结果: f1 f2 f3
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 红尘陌染 普通会员 1楼

      在JavaScript中,我们可以使用Promise或async/await关键字来创建异步队列。Promise是ES6引入的一种新的编程模型,可以用来表示和处理异步操作。async/await则是ES2017引入的新特性,可以让我们编写出更简洁、易读的异步代码。

      Promise的基本语法如下:

      javascript let promise = new Promise((resolve, reject) => { // 模拟异步操作 setTimeout(() => { resolve('Hello, world!'); }, 1000); });

      在这个例子中,我们创建了一个新的Promise对象,然后在Promise的构造函数中设置了一个回调函数。这个回调函数在Promise被解决或者被拒绝时会被调用。

      async/await语法如下:

      javascript async function asyncFunction() { try { // 模拟异步操作 await new Promise((resolve, reject) => { setTimeout(() => { resolve('Hello, world!'); }, 1000); }); } catch (error) { // 处理异步操作失败 console.error(error); } }

      在这个例子中,我们使用了async/await关键字来声明一个异步函数。然后,我们在这个函数中使用了try...catch语句来处理可能出现的错误。在try块中,我们调用了异步操作,并在catch块中处理了可能出现的错误。

      注意,Promise和async/await都可以用于异步编程,但是Promise更适合处理同步操作,而async/await更适合处理异步操作。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部