相关疑难解决方法(0)

如何将现有的回调API转换为承诺?

我想使用promises,但我有一个回调API,格式如下:

1. DOM加载或其他一次性事件:

window.onload; // set to callback
...
window.onload = function() {

};
Run Code Online (Sandbox Code Playgroud)

2.平原回调:

function request(onChangeHandler) {
    ...
}
request(function() {
    // change happened
    ...
});
Run Code Online (Sandbox Code Playgroud)

3.节点样式回调("nodeback"):

function getStuff(dat, callback) {
    ...
}
getStuff("dataParam", function(err, data) {
    ...
})
Run Code Online (Sandbox Code Playgroud)

4.具有节点样式回调的整个库:

API;
API.one(function(err, data) {
    API.two(function(err, data2) {
        API.three(function(err, data3) {
            ...
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

如何在promises中使用API​​,我该如何"宣传"它?

javascript callback node.js promise bluebird

680
推荐指数
12
解决办法
20万
查看次数

产生一个取决于递归承诺的承诺

我有一个整数id数组,例如

var a=[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

我需要为每个ID执行异步远程调用.每个调用都是使用$ resource执行的WebAPI请求,并显示为promise.

我需要创建一个函数来获取这些ID的数组,然后初始化递归的promises链.该链应该逐个导致对每个ID进行相应的webapi调用.这些调用不应该是并行的,而应该是链接的.

有问题的函数返回一个"主"承诺,应根据异步Web调用的结果解决或拒绝.也就是说,如果由于与服务器断开连接而导致递归中的某些承诺被拒绝,那么主承诺也应该失败.在正常情况下,"主要"承诺必须在所有请求完成时解决.

我怎样才能在angularjs中实现这一目标?

javascript asynchronous promise angularjs q

4
推荐指数
1
解决办法
1196
查看次数

标签 统计

javascript ×2

promise ×2

angularjs ×1

asynchronous ×1

bluebird ×1

callback ×1

node.js ×1

q ×1