相关疑难解决方法(0)

承诺不仅仅是回调吗?

我已经开发了几年的JavaScript,我根本不理解有关承诺的大惊小怪.

似乎我所做的只是改变:

api(function(result){
    api2(function(result2){
        api3(function(result3){
             // do work
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以使用像async这样的库,例如:

api().then(function(result){
     api2().then(function(result2){
          api3().then(function(result3){
               // do work
          });
     });
});
Run Code Online (Sandbox Code Playgroud)

哪个代码更多,可读性更低.我没有在这里获得任何东西,它也不会突然神奇地"平坦".更不用说必须将事物转换为承诺.

那么,这里的承诺有什么大惊小怪?

javascript callback promise q bluebird

402
推荐指数
7
解决办法
9万
查看次数

JavaScript如何在后台处理AJAX响应?

由于JavaScript在单个线程中运行,在发出AJAX请求后,后台实际发生了什么?我想更深入地了解这一点,任何人都可以解释一下吗?

javascript xmlhttprequest

136
推荐指数
2
解决办法
2万
查看次数

如何在node.js中创建自定义异步函数?

我不确定node.js是如何能够实现异步的哪些功能,哪些不是以及如何创建自定义异步功能.

说我想创建一个自定义异步函数.如果仅仅因为我调用异步函数回调或cb的最后一个参数它会知道它的异步函数,我会感到惊讶:

function f(arg1, callback){
  //do stuff with arg1
  arg1.doStuff()
  //call callback
  callback(null, arg1.result());
}
Run Code Online (Sandbox Code Playgroud)

我尝试了类似的东西,它没有异步工作.你怎么告诉node.js f实际上是异步的?

javascript asynchronous node.js

10
推荐指数
2
解决办法
5212
查看次数

在javascript中,异步回调如何在单线程中工作?

对于下面的 onload 2 函数(计划调用这 2 个图像的“onload”),如何保证其中一个在另一个开始之前完全完成?在这个单线程环境中是否有需要触发的回调的幕后队列?

如果entryFunction永远不会停止循环,它是否会暂停其线程并屈服于doWorks()之一?

我听说javascript不是多线程的,那么entryFunction()是否会屈服/暂停这些异步函数调用?

function entryFunction() {
  var obj = new Image();
  var obj2 = new Image();
  // ...
  obj.onload = function() { dowork(); }
  obj2.onload = function() { dowork(); }

  while (1) {
    console.log("Actual work is being done");
  }
}

function dowork() {
  doThis();
  doThat();
}
Run Code Online (Sandbox Code Playgroud)

javascript

6
推荐指数
1
解决办法
1280
查看次数

为什么我的async/await函数异常?(Javascript)

这是我的Javascript编码.我认为结果是1 2 3 4 5.

async function fn1 () {
    console.log(1);
    await fn2();
    console.log(3);
};

async function fn2 () {
    console.log(2);
};

fn1();
new Promise((resolve, reject) => {
    console.log(4)
    resolve()
}).then(() => {
    console.log(5)
})
Run Code Online (Sandbox Code Playgroud)

但.结果是:1 2 4 5 3.

javascript

3
推荐指数
1
解决办法
190
查看次数

Promise.all() 是顺序运行还是并行运行?

Promise.all() 在 Javascript 中是顺序运行还是并行运行?

例如:

    const promises = [promise1(), promise2(), promise3()]
    Promise.all(promises)
    .then(data => {
        // whatever 
    });
Run Code Online (Sandbox Code Playgroud)

是promise1()在转到promise2() 之前执行并解析,还是promise1()、promise2()、 和promise 3()全部同时并行运行?我会假设浏览器中的 Node、Javascript 是单线程的,因此它们不会并行运行?

javascript asynchronous promise

3
推荐指数
2
解决办法
7552
查看次数