Javascript 将其中一个异步方法重写为使用承诺的方法
如何使用模块将回调重写为承诺?例如,如果我有以下代码Javascript 将其中一个异步方法重写为使用承诺的方法,javascript,node.js,asynchronous,promise,Javascript,Node.js,Asynchronous,Promise,如何使用模块将回调重写为承诺?例如,如果我有以下代码 async.parallel([ function(){ ... }, function(){ ... } ], callback); 或 您可以使用Promise。几乎每个Promise库都以这样或那样的方式内置了所有的,尤其是原生和蓝鸟promises: function fn1(){ return Promise.resolve(1); } function fn1(){ return
async.parallel([
function(){ ... },
function(){ ... }
], callback);
或
您可以使用
Promise。几乎每个Promise库都以这样或那样的方式内置了所有的,尤其是原生和蓝鸟promises:
function fn1(){
return Promise.resolve(1);
}
function fn1(){
return Promise.resolve(2);
}
Promise.all([fn1(), fn2()]).then(function(results){
//access results in array
console.log(results); // [1,2]
});
重写async.parallel
您不会为此使用任何回调函数,但会为所有要运行的任务创建自己的承诺。然后,您可以使用以下命令等待所有用户:
重写异步瀑布
为此,您将使用最原始的promise方法:。它用于链接承诺、将回调传递给承诺以及获取回调结果的新承诺。但是请注意,承诺总是只使用单个值进行解析,因此您的节点回退(null,'one','two')
示例将无法工作。您将不得不使用数组或对象
Promise.resolve(['one', 'two']).then(function(args) {
// args[0] now equals 'one' and args[1] now equals 'two'
return Promise.resolve('three'); // you can (and usually do) return promises from callbacks
}).then(function(arg1) {
// arg1 now equals 'three'
return 'done'; // but plain values also work
}).then(function(result) {
// result now equals 'done'
});
async.parallel([function(){…},function(){…}],回调)的结果是什么代码>,是否可以创建堆栈代码段?使用异步模块的预期结果是什么?这是两种async
方法!
Promise.all([promiseMaker1(), promiseMaker2()]).then(callback);
Promise.resolve(['one', 'two']).then(function(args) {
// args[0] now equals 'one' and args[1] now equals 'two'
return Promise.resolve('three'); // you can (and usually do) return promises from callbacks
}).then(function(arg1) {
// arg1 now equals 'three'
return 'done'; // but plain values also work
}).then(function(result) {
// result now equals 'done'
});