Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 答应一切,等待一切,不管有什么错误_Javascript_Promise - Fatal编程技术网

Javascript 答应一切,等待一切,不管有什么错误

Javascript 答应一切,等待一切,不管有什么错误,javascript,promise,Javascript,Promise,我知道承诺。所有的承诺都会等待解决或拒绝一个承诺。 我如何才能让它等待所有承诺的解决或拒绝?您可能正在寻找Promise.allsolited() allsolited()方法返回一个承诺,该承诺在所有给定承诺履行或拒绝后解析,其中包含一个对象数组,每个对象描述每个承诺的结果 资料来源: 您可以用这种方式定义自定义函数。此功能将始终成功,不会被拒绝 const reflect = p => p.then(v => ({v, status: "fulfilled"

我知道承诺。所有的承诺都会等待解决或拒绝一个承诺。
我如何才能让它等待所有承诺的解决或拒绝?

您可能正在寻找
Promise.allsolited()

allsolited()方法返回一个承诺,该承诺在所有给定承诺履行或拒绝后解析,其中包含一个对象数组,每个对象描述每个承诺的结果

资料来源:


您可以用这种方式定义自定义函数。此功能将始终成功,不会被拒绝

const reflect = p => p.then(v => ({v, status: "fulfilled" }),
                            e => ({e, status: "rejected" }));

reflect(promise).then((v => {
    console.log(v.status);
});
然后您可以用这种方式应用
Promise.all
,并且可以根据单个Promise的结果过滤结果

Promise.all(arr.map(reflect)).then(function(results){
    var success = results.filter(x => x.status === "fulfilled");
});
返回一个承诺,该承诺在所有给定承诺都已履行或拒绝后解析,其中包含一个对象数组,每个对象描述每个承诺的结果。