javascript 如何判断其他then()方法是否可以省略?

sz81bmfz  于 2023-01-29  发布在  Java
关注(0)|答案(1)|浏览(138)

下面的代码演示了一个表单,它允许在自动提交之前从剪贴板粘贴值。它使用了两个then()方法。请使用Chrome进行测试,因为Firefox还不支持它。

const input = document.querySelector('input'),
      submitButton = document.querySelector('button[type="submit"]'),
      pasteAndSubmitButton = document.querySelector('button[type="button"]');

pasteAndSubmitButton.addEventListener('click', function ()
{
    navigator.clipboard.readText()
        .then(clipText => input.value = clipText)
        .then(() => submitButton.click());
});
<form>
    Address: <input type="text" name="address" required>
    <button type="submit">Submit</button>
    or
    <button type="button">Paste and Submit</button>
</form>

我想知道省略第二个then()方法并将其中的代码移到第一个方法中是否安全,如下所示:

navigator.clipboard.readText()
    .then(clipText =>
    {
        input.value = clipText;
        submitButton.click();
    });

我的测试表明结果是相同的,但是我不确定省略第二个then()方法是否总是安全的,因为我到目前为止看到的fetch示例使用了两个then()方法。

hc8w905p

hc8w905p1#

许多fetch示例使用两个then,因为涉及两个承诺:一个用于获取响应头,一个用于读取响应体。换句话说,fetch和典型的后续方法(如Response.text())都返回一个promise。这里不涉及两个promise,因此您只需要一个then

相关问题