Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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 - Fatal编程技术网

Javascript 我必须捕获承诺构造函数中的错误吗?

Javascript 我必须捕获承诺构造函数中的错误吗?,javascript,Javascript,我知道当我检测到拒绝承诺的问题时,我可以调用reject(),但我是否也应该使用try/catch来捕获错误?以下哪一项是正确的 function doSomething() { return new Promise((resolve, reject) => { let data = dangerousMethod(...); resolve(data); }); } 或: 我的直觉告诉我,也许我不必这么做,但我的直觉让我在写JS时遇到了很

我知道当我检测到拒绝承诺的问题时,我可以调用
reject()
,但我是否也应该使用
try/catch
来捕获错误?以下哪一项是正确的

function doSomething() {
    return new Promise((resolve, reject) => {
        let data = dangerousMethod(...);
        resolve(data);
    });
}
或:


我的直觉告诉我,也许我不必这么做,但我的直觉让我在写JS时遇到了很多麻烦。

如果出现异常,承诺将自动被拒绝,下面是

与参数resolve和reject一起传递的函数。这个 执行人职能由承诺立即执行 实现,传递解析和拒绝函数(执行器为 在承诺构造函数返回创建的 对象)。“解析”和“拒绝”函数在调用时为“解析”或“拒绝” 分别拒绝承诺。执行人通常会发起一些 异步工作,然后,一旦完成,调用 resolve函数来解析承诺,或者在出现错误时拒绝承诺 发生了如果在executor函数中抛出错误,则承诺 被拒绝。忽略执行器的返回值


您希望引发什么样的异常?为什么要使用带有承诺的
readFileSync
?怎么样?为什么不直接使用?Felix,更好。谢谢分享:)酷,我在看文档的时候错过了那句话。谢谢
function doSomething() {
    return new Promise((resolve, reject) => {
        try {
            let data = dangerousMethod(...);
            resolve(data);
        } catch (err) {
            reject(err);
        }
    });
}