相关疑难解决方法(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万
查看次数

Promise.then 作业执行顺序

规范说(第 5 段):

来自单个作业队列的 PendingJob 记录始终以 FIFO 顺序启动。本规范未定义服务多个作业队列的顺序。ECMAScript 实现可以将作业队列的 PendingJob 记录的 FIFO 评估与一个或多个其他作业队列的 PendingJob 记录的评估交织在一起。

这是否意味着我不能指望在其他同步控制流中.then提供回调之前评估提供的回调setTimeout

换句话说,我可以依赖以下打印吗one two

setTimeout(() => console.log('two'));
Promise.resolve().then(() => console.log('one'));
Run Code Online (Sandbox Code Playgroud)

javascript promise

2
推荐指数
1
解决办法
1149
查看次数

标签 统计

javascript ×3

promise ×2

bluebird ×1

callback ×1

q ×1

xmlhttprequest ×1